2016-12-29 4 views
1

Wildfly Swarmで静的なHTMLページを含むwebappフォルダをJAXRSArchiveに追加しようとしています。しかし、残念ながらそれは成功しませんでした。どうやってやるの?Wildfly Swarm JAXRSArchive webappディレクトリを追加

+0

問題を解決しましたか?私は同じ問題を抱えている。 –

答えて

0

は、カスタムメインを必要とする理由あなたが上で手の込んだ

public static void main(String... args) throws Exception { 
    Swarm container = new Swarm(); 
    JAXRSArchive jaxrsDeployment = ShrinkWrap.create(JAXRSArchive.class); 
    jaxrsDeployment.addAsLibrary(container.createDefaultDeployment()); 
    jaxrsDeployment.addAllDependencies(); 
    jaxrsDeployment.staticContent(); 
    container.start(); 
    container.deploy(jaxrsDeployment); 
+0

私は同じことをしましたが、それは私のために働いていません。多分私は何かが恋しいですか? – Nikita

+0

jar/warの内容を確認し、正しく追加されているかどうかを確認することができます – ravthiru

+0

これは問題です。彼らはしない。 – Nikita

0

を次のようにstaticContenetを呼び出しを追加src/main/webappに、あなたmainメソッドにすべての静的ファイルをコピーしますか()?

推奨されるオプションは、カスタムmain()を使用しないか、デプロイメントをカスタマイズしないためにカスタムmain()が必要な場合です。

あなただけ呼び出すことができますSwarm.deploy()、それはあなたのプロジェクトが型戦争のであれば、

+0

私はJavaベースのアプローチが好きです。また、この配置のカスタマイズは、大部分のswarmの例(swaggerを追加するなど)のほとんどで使用されます。私にとっては、より良いアプローチのように見えますが、十分に文書化されていません。 – Nikita

+0

例とドキュメントのほとんどはデプロイメントをカスタマイズしているので、それほど簡単ではありません。 – Nikita

+0

WARを何らかの方法でカスタマイズする必要があるため、カスタムmain()が本当に必要な場合は、Swarm.createDefaultDeployment()を使用して、Maven WARパッケージと同等のアーカイブを作成してください。 – Ken

0

この質問は古くなって正常に動作しますデフォルトの展開を、作成します。しかし、私は同じ問題に遭遇した人たちにこの解決策を投稿します。

@ApplicationPathを指定せずにJAX-RSを使用している場合に問題が発生する可能性があります。

デフォルトでは、JAX-RSはアプリのルート/をリッスンし、標準マッピングを上書きします。あなたはこのような構成を追加する必要があり、この場合には

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 

@ApplicationPath("/api") 
public class JaxRSConfiguration extends Application { 
} 

これは/apiですべてのあなたのJAX-RSエンドポイントを接頭辞とあなたは、静的なコンテンツを操作できるようになります。

関連する問題