内から起動したとき、私は、コマンドにスタンドアロンJARには、Mavenのアセンブリ・プラグインを使用してIDE
$ mvn clean compile assembly:single
使用して、単一のstandalone.jarに
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>my.package.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>standalone</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
を私のJava Webアプリケーションをバンドルできるよりも動作が異なりますアプリケーションは、グリズリーとジャージーに基づくRESTバックエンドです。
$ java -jar standalone.jar
を使用して起動できます。コンソールの出力から、HTTPサーバーが起動し、ポート8765でリッスンしていることがわかります。
残念ながら、RESTエンドポイントのいずれかにリクエストを送信すると、エラーコード500の内部サーバーエラーが返されます。 出力から結論づけることができるので、要求処理メソッドのどれも呼び出されません。
IDE IntelliJ内から(起動ボタンを押して)起動すると、アプリケーションは正常に動作します。
同様の質問がJava JAR behaving differently to program run out of IDEを頼まれたが、中に示唆されているように私の場合にはフラグもIDEによって設定されているの-Dfile.encoding = UTF-8は
EDIT
問題を解決していませんコメント、私はログの出力を検査しようとしました。私は最高のログレベルとIDEからアプリケーションを実行すると、私は例外を含む追加メッセージをたくさん受けるGrizzly Standalone Logging
で説明した手法を以下ました
Dez 03, 2016 11:36:07 PM org.glassfish.jersey.internal.util.ReflectionHelper$2 run
FINER: Unable to load class org.osgi.framework.BundleReference using the current class loader.
java.lang.ClassNotFoundException: org.osgi.framework.BundleReference
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.glassfish.jersey.internal.util.ReflectionHelper$2.run(ReflectionHelper.java:262)
at org.glassfish.jersey.internal.util.ReflectionHelper$2.run(ReflectionHelper.java:247)
at java.security.AccessController.doPrivileged(Native Method)
at org.glassfish.jersey.internal.util.ReflectionHelper.<clinit>(ReflectionHelper.java:1471)
at org.glassfish.jersey.server.ResourceConfig$State.<init>(ResourceConfig.java:112)
at org.glassfish.jersey.server.ResourceConfig.<init>(ResourceConfig.java:353)
at my.package.Main.main(Main.java:42)
私は、任意の追加のログを得ることはありません-Djava.util.logging.config.file = ...を使ってstandalone.jarを実行したときに表示されるメッセージ
サーバーのログファイルには、何らかのエラーがあるはずです。見たことがありますか?はいの場合、何もなかった場合は、ログレベルを上げようとしましたか? –