したがって、これは主に問題を説明するためのコードになりますが、次のように問題が発生します。
ブラウザでlocalhost:8080 / licsrv / itemsを指定すると、404が返されます。
revelant web.xml
<!-- Java Remoting Servlet -->
<servlet>
<servlet-name>licenseGenService</servlet-name>
<servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>licenseGenService</servlet-name>
<url-pattern>/remoting/licensing</url-pattern>
</servlet-mapping>
<!-- Restful API Servlet-->
<servlet>
<servlet-name>licensingRestService</servlet-name>
<servlet-class>
com.sun.jersey.spi.spring.container.servlet.SpringServlet
</servlet-class>
<init-param>
<param-name>
com.sun.jersey.config.property.packages
</param-name>
<param-value>
mypackage.rest
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>licensingRestService</servlet-name>
<url-pattern>/orders</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>licensingRestService</servlet-name>
<url-pattern>/items</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>licensingRestService</servlet-name>
<url-pattern>/customers</url-pattern>
</servlet-mapping>
ItemsResourceImpl.java
@Path("/items")
public class ItemsResourceImpl implements ItemsResource
{
@GET
@Produces("text/html")
public String testItems()
{
return "<html><body><h1>Items Resource Tester</h1><p>Items Resource is available.</p></body></html>";
}
.....
}
そして、applicationContext.xmlにBeanがあります
これで、ItemsResource(インターフェイス)にもアノテーションとメソッドが定義されましたが、これが問題になる可能性がありますか?私の印象では、Jax-RSアノテーションは継承されていません。2つのサーブレットがあり、何かが足りないというのは事実ですか?サーブレットが1つだけで、同じ構成が同じことを行う純粋なRESTサービスがあります。構成を変更する方法によっては、405 MethodNotAllowedも取得されます。何か案は?