質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

解決済

Quarkusアプリケーションで@ConfigPropertyが有効にならずnull

yurak
yurak

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1回答

0評価

0クリップ

484閲覧

投稿2020/01/22 16:22

編集2022/01/12 10:58

Quarkusアプリケーションで@ConfigPropertyが有効ならない

Quarkusではapplication.propertiesに記載したkey=valueの値を、
@ConfigPropertyを指定することで取得できるが、実行するとnullが返ってくる。

発生している問題・エラーメッセージ

git/k8s-3tier-webapp-minikube/application/redis-mysql-quarkus % ./mvnw compile quarkus:dev [INFO] Scanning for projects... [INFO] [INFO] --------------------< org.acme:redis-mysql-quarkus >-------------------- [INFO] Building redis-mysql-quarkus 1.0.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ redis-mysql-quarkus --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 3 resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ redis-mysql-quarkus --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- quarkus-maven-plugin:1.0.1.Final:dev (default-cli) @ redis-mysql-quarkus --- Listening for transport dt_socket at address: 5005 The application is starting... 2019-12-20 17:17:49,727 INFO [io.quarkus] (main) Quarkus 1.0.1.Final started in 0.956s. Listening on: http://0.0.0.0:8080 2019-12-20 17:17:49,785 INFO [io.quarkus] (main) Profile dev activated. Live Coding activated. 2019-12-20 17:17:49,785 INFO [io.quarkus] (main) Installed features: [cdi, jdbc-mysql, resteasy] java.lang.IllegalArgumentException: hostname can't be null at java.net.InetSocketAddress.checkHost(InetSocketAddress.java:149) at java.net.InetSocketAddress.<init>(InetSocketAddress.java:216) at redis.clients.jedis.Connection.connect(Connection.java:181) at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:100) at redis.clients.jedis.Connection.setTimeoutInfinite(Connection.java:93) at redis.clients.jedis.Jedis.subscribe(Jedis.java:2787) at org.acme.service.RedisService.subscribeRedis(RedisService.java:39) at org.acme.events.TaskExecute.run(TaskExecute.java:13) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) the application is stopping...

該当のソースコード

https://github.com/yurake/k8s-3tier-webapp/blob/master/application/redis-mysql-quarkus/src/main/java/org/acme/service/RedisService.java
※ ResourceBundle.getBundleで代替中

java

package org.acme.service; import java.sql.Connection; import java.util.logging.Logger; import javax.inject.Inject; import javax.ws.rs.ext.Provider; import org.eclipse.microprofile.config.inject.ConfigProperty; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPubSub; import redis.clients.jedis.exceptions.JedisConnectionException; @Provider public class RedisService { Connection con = null; private static final Logger LOG = Logger.getLogger(RedisService.class.getSimpleName()); // private static String servername = GetConfig.getResourceBundle("redis.server"); // private static int serverport = Integer.parseInt(GetConfig.getResourceBundle("redis.port")); // private static String channel = GetConfig.getResourceBundle("redis.channel"); // private static String splitkey = GetConfig.getResourceBundle("redis.splitkey"); @Inject @ConfigProperty(name = "redis.server") String servername; @Inject @ConfigProperty(name = "redis.port") int serverport; @Inject @ConfigProperty(name = "redis.channel") String channel; @Inject @ConfigProperty(name = "redis.splitkey") String splitkey; public boolean ping() { Jedis jedis = new Jedis(servername, serverport); try { if (jedis.ping().equalsIgnoreCase("PONG")) { return true; } } catch (JedisConnectionException e) { e.printStackTrace(); } finally { jedis.close(); } return false; } public void subscribeRedis() { MysqlService mysqlsvc = new MysqlService(); Jedis jedis = new Jedis(servername, serverport); try { jedis.subscribe(new JedisPubSub() { @Override public void onMessage(String channel, String message) { String fullmsg = null; String[] body = message.split(splitkey, 0); fullmsg = "Received channel:" + channel + ", id: " + body[0]+ ", msg: " + body[1]; LOG.info(fullmsg); mysqlsvc.insertMysql(body); } }, channel); } catch (Exception e) { e.printStackTrace(); } finally { jedis.close(); } } }

properties

# Configuration file # key = value # Redis Client redis.server = redis redis.port = 6379 redis.channel = pubsub redis.splitkey = ,

試したこと

https://quarkus.io/guides/config
で記載されている内容は一通り実施済み。

補足情報(FW/ツールのバージョンなど)

pom.xml

xml

<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>webapp.3tier.k8s</groupId> <artifactId>redis-mysql-quarkus</artifactId> <version>1.0.0-SNAPSHOT</version> <properties> <compiler-plugin.version>3.8.1</compiler-plugin.version> <maven.compiler.parameters>true</maven.compiler.parameters> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <quarkus-plugin.version>1.0.1.Final</quarkus-plugin.version> <quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id> <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> <quarkus.platform.version>1.0.1.Final</quarkus.platform.version> <surefire-plugin.version>2.22.1</surefire-plugin.version> <jedis.version>3.1.0</jedis.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>${quarkus.platform.group-id}</groupId> <artifactId>${quarkus.platform.artifact-id}</artifactId> <version>${quarkus.platform.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-junit5</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-jdbc-mysql</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>${jedis.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>io.quarkus</groupId> <artifactId>quarkus-maven-plugin</artifactId> <version>${quarkus-plugin.version}</version> <executions> <execution> <goals> <goal>build</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>${compiler-plugin.version}</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>${surefire-plugin.version}</version> <configuration> <systemProperties> <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> </systemProperties> </configuration> </plugin> </plugins> </build> <profiles> <profile> <id>native</id> <activation> <property> <name>native</name> </property> </activation> <build> <plugins> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <version>${surefire-plugin.version}</version> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> <configuration> <systemProperties> <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path> </systemProperties> </configuration> </execution> </executions> </plugin> </plugins> </build> <properties> <quarkus.package.type>native</quarkus.package.type> </properties> </profile> </profiles> </project>

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。