私のアプリケーションをJBoss 7.1.1にアップグレードしており、RestEasyを使用しています。 RestEasyを動作させる際に問題が発生しています。 HTTPステータス404 - 相対的なリソースを見つけることができませんでした。私はこれが正しい終点を見つけることができないと信じています。私の疑問は、サービスをスキャンして登録する際に問題があることです。私は間違っている可能性があります。注:私はここではMavenのJBoss 7 RestEasy ...サービスが登録されていませんか?
を使用していないのRESTEasyに関係している私のweb.xmlの一部されています
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
ここでは、私が使用していますサンプル・リソースである:
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/hello")
public class HelloResource {
@POST
@Produces("text/plain")
public String helloResource() {
return "Hello!";
}
}
私が試したURLは:http://localhost:8080/[project-name]/rest/hello
私はそれが私の呼び出しのために使用していると思います。私の質問に答えるために追加情報が必要な場合は、お気軽にお問い合わせください。あなたの助けを前もってありがとう!
P.S. - ファイルをWARでどのように構造化する必要がありますか?
[更新のweb.xml]
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest</param-value>
</context-param>
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>com.elderscan.test.RestEasyExample</param-value>
</context-param>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.elderscan.test.MyApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
だからこれは私が成功しRestEasyExampleへの呼び出しを行うことができますが、私は明らかに行う必要があり、別の他のRESTサービスに電話をかけることはできません。さらに、xmlに私のすべてのサービスを追加するというこの解決策は理想的ではないので、別の方法が望ましいでしょう。
私はweb.xmlにいくつかの変更を行ったとして、私の最初の投稿にいくつかの更新を追加するつもりですが、:キーは各シングルトンは、RESTサービスであり、私はすでに持っていたものにこれを含めるようにしました以前はあなたがそこに用意したスニペットを持っていたので、resteasy.scanが無視されているという警告文が出ました(私はJBoss 7でデフォルト設定されていると思います)。その後、展開に失敗します。 [後で追加しました] - 新しいWeb.xmlでこれを試してみると、うまく展開できますが、httpステータスが500になり、java.lang.RuntimeExceptionエラーが発生します:クラスのpublicコンストラクタを見つけることができませんorg.jboss.resteasy.core.AsynchronousDispatcheは、デプロイメントが失敗するのに使用されたものです。 –