Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

SpringMVCとRestEasyの連携について

現在、SpringMVCとRestEasyを連携をしたいのですが、ど
うもResteasy側の呼び出しがうまくいきません。
(SpringMVC側の呼び出しはうまくいっています。)

RestEasy側のリソースを呼び出そうとすると下記のような
エラーが発生します。
解決策について、どなたかご教示いただけないでしょう
か。


【エラー内容】
javax.ws.rs.NotFoundException: Could not find 
resource for full path: 
http://localhost:8080/ResteasySample/rest/sample
    at 
org.jboss.resteasy.core.registry.ClassNode.match(Cla
ssNode.java:73)
    at 
org.jboss.resteasy.core.registry.RootClassNode.match
(RootClassNode.java:48)
    at 
org.jboss.resteasy.core.ResourceMethodRegistry.getRe
sourceInvoker(ResourceMethodRegistry.java:444)
    at 
org.jboss.resteasy.core.SynchronousDispatcher.getInv
oker(SynchronousDispatcher.java:234)
    at 
org.jboss.resteasy.core.SynchronousDispatcher.invoke
(SynchronousDispatcher.java:171)
    at 
org.jboss.resteasy.plugins.server.servlet.ServletCon
tainerDispatcher.service(ServletContainerDispatcher.
java:220)
    at 
org.jboss.resteasy.plugins.server.servlet.HttpServle
tDispatcher.service(HttpServletDispatcher.java:56)
    at 
org.jboss.resteasy.plugins.server.servlet.HttpServle
tDispatcher.service(HttpServletDispatcher.java:51)
    at 
javax.servlet.http.HttpServlet.service(HttpServlet.j
ava:725)
    at 
org.apache.catalina.core.ApplicationFilterChain.inte
rnalDoFilter(ApplicationFilterChain.java:291)
    at 
org.apache.catalina.core.ApplicationFilterChain.doFi
lter(ApplicationFilterChain.java:206)
    at 
org.apache.tomcat.websocket.server.WsFilter.doFilter
(WsFilter.java:52)
    at 
org.apache.catalina.core.ApplicationFilterChain.inte
rnalDoFilter(ApplicationFilterChain.java:239)
    at 
org.apache.catalina.core.ApplicationFilterChain.doFi
lter(ApplicationFilterChain.java:206)
    at 
org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:219)
    at 
org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:106)
    at 
org.apache.catalina.core.StandardHostValve.invoke(St
andardHostValve.java:142)
    at 
org.apache.catalina.valves.ErrorReportValve.invoke(E
rrorReportValve.java:79)
    at 
org.apache.catalina.valves.AbstractAccessLogValve.in
voke(AbstractAccessLogValve.java:610)
    at 
org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:88)
    at 
org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:516)
    at 
org.apache.coyote.http11.AbstractHttp11Processor.pro
cess(AbstractHttp11Processor.java:1086)
    at 
org.apache.coyote.AbstractProtocol$AbstractConnectio
nHandler.process(AbstractProtocol.java:659)
    at 
org.apache.coyote.http11.Http11NioProtocol$Http11Con
nectionHandler.process(Http11NioProtocol.java:223)
    at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcess
or.doRun(NioEndpoint.java:1558)
    at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcess
or.run(NioEndpoint.java:1515)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(Th
readPoolExecutor.java:1142)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(T
hreadPoolExecutor.java:617)
    at 
org.apache.tomcat.util.threads.TaskThread$WrappingRu
nnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)



【web.xml】
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="idvalue0" metadata-complete="true" 
version="3.1"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xmlns:xml="http://www.w3.org/XML/1998/namespace"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml
/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-
app_3_1.xsd http://www.w3.org/XML/1998/namespace 
http://www.w3.org/2001/xml.xsd ">
    <!-- <web-app version="3.1" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
        
xsi:schemaLocation="http://java.sun.com/xml/ns/javae
e http://java.sun.com/xml/ns/javaee/web-
app_3_1.xsd"> -->

    <listener>
        <listener-
class>org.jboss.resteasy.plugins.server.servlet.Rest
easyBootstrap</listener-class>
    </listener>
    <listener>
        <listener-
class>org.jboss.resteasy.plugins.spring.SpringContex
tLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>Resteasy</servlet-
name>
        <servlet-
class>org.jboss.resteasy.plugins.server.servlet.Http
ServletDispatcher</servlet-class>
        <load-on-startup>3</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Resteasy</servlet-
name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

    <context-param>
        <param-
name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/root-
context.xml</param-value>
    </context-param>
    <servlet>
        <servlet-name>appServlet</servlet-
name>
        <servlet-
class>org.springframework.web.servlet.DispatcherServ
let</servlet-class>
        <init-param>
            <param-
name>contextConfigLocation</param-name>
            <param-value>/WEB-
INF/spring/appServlet/servlet-context.xml</param-
value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>appServlet</servlet-
name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

【root-context.xml】
<?xml version="1.0" encoding="UTF-8"?>
<beans 
xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
    xsi:schemaLocation="http://www.springframewo
rk.org/schema/beans 
http://www.springframework.org/schema/beans/spring-
beans.xsd">
    <bean 
class="jp.co.resteasysample.ApplicationContextAwareI
mpl"></bean>
</beans>


【servlet-context.xml】
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans 
xmlns="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" 
xmlns:beans="http://www.springframework.org/schema/b
eans"
    xmlns:context="http://www.springframework.or
g/schema/context"
    xsi:schemaLocation="http://www.springframewo
rk.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-
mvc.xsd
        
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-
beans.xsd
        
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring
-context.xsd">

    <annotation-driven />
    <resources mapping="/resources/**" 
location="/resources/" />
    <beans:bean
        
class="org.springframework.web.servlet.view.Internal
ResourceViewResolver">
        <beans:property name="prefix" 
value="/WEB-INF/views/" />
        <beans:property name="suffix" 
value=".jsp" />
    </beans:bean>

    <context:component-scan base-
package="jp.co.resteasysample">
        <context:include-filter 
type="annotation" 
expression="org.springframework.stereotype.Service"/
>
        <context:include-filter 
type="annotation" 
expression="org.springframework.stereotype.Component
"/>
    </context:component-scan>
</beans:beans>


【RestEasySample.java】
package jp.co.resteasysample;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;

public class RestEasySample {

    @Post
    @Path("/sample")
    public Response printMessage() {
        return null;
    }
}

4

回答

2197

閲覧

4件の回答

評価

0

すみません。

下記に誤記がありましたので訂正します。
【RestEasySample.java】
package jp.co.resteasysample;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;

public class RestEasySample {

    @Post
    @Path("rest/sample")
    public Response printMessage() {
        return null;
    }
}

評価

0

@ApplicationPathがないからじゃないの。

評価

0


ご回答ありがとうございます。
頂いたご回答を元に下記のサイトにたどり着きました。
https://access.redhat.com/documentation/ja-
JP/JBoss_Enterprise_Application_Platform/6/html/Migr
ation_Guide/sect-JAX-RS_and_RESTEasy_Changes.html

上記サイトの内容をもとに
Applicationクラスのサブクラスを作成しました。

しかし、同様のエラーが発生し手詰まりとなってしまいま
した。
他に何か必要な設定があるのでしょうか。。。
----------------------------------------------------
-----------------
■作成したクラス
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/service")
public class RestEasySampleApplication extends 
Application {

}

----------------------------------------------------
-----------------
■エラーメッセージ
WARN : org.jboss.resteasy.core.ExceptionHandler - 
failed to execute
javax.ws.rs.NotFoundException: Could not find 
resource for full path: 
http://localhost:8080/ResteasySample/service/rest/sa
mple
    at 
org.jboss.resteasy.core.registry.ClassNode.match(Cla
ssNode.java:73)
    
    

評価

0

ApplicationPathはResteasySampleじゃないの?

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。