Eap 6.3 resteasy 客户端:org.jboss.resteasy.client.ClientRequest ClassNotFoundException
Eap 6.3 resteasy client: org.jboss.resteasy.client.ClientRequest ClassNotFoundException
我正在 EAP 6.3 上开发应用程序。我需要调用休息服务,所以我使用了如下代码:
ClientRequest request = new ClientRequest(URL);
...
request.body(MediaType.APPLICATION_JSON, input);
...
ClientResponse<String> response = request.post(String.class);
...
在我的 pom 中导入了这个 bom:
<dependency>
<groupId>org.jboss.bom.eap</groupId>
<artifactId>jboss-javaee-6.0-with-resteasy</artifactId>
<version>6.3.0.GA</version>
<type>pom</type>
<scope>import</scope>
</dependency>
然后我用提供的范围定义了依赖关系:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<scope>provided</scope>
</dependency>
不幸的是,运行 之前的代码我得到了这个错误:
...
Caused by: java.lang.ClassNotFoundException: org.jboss.resteasy.client.ClientRequest from [Module "deployment.ats-ear.ear.ats-web.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final-redhat-1]
... 87 more
在modules\system\layers\base\org\jboss\resteasy\resteasy-jaxrs\main的服务器上查看实际上有jar resteasy-jaxrs-2.3.8.Final-redhat-3.jar 包含 class:org.jboss.resteasy.client.ClientRequest
我不明白我做错了什么...可能我需要在 jbooss-deployment-structure.xml?[= 中指定一些内容15=]
如果我将 resteasy-jaxrs 的范围设置为编译,一切正常,但我认为将服务器上已经存在的库放在耳边不是个好主意。
我通过在 jboss-deployment-structure 中添加适当的模块解决了这个问题。xml:
<deployment>
<dependencies>
....
<module name="org.jboss.resteasy.resteasy-jaxrs" export="true" meta-inf="export" slot="main"/>
<module name="org.jboss.resteasy.resteasy-jackson-provider" export="true" meta-inf="export" slot="main"/>
</dependencies>
</deployment>
<sub-deployment name="ats-web.war">
<dependencies>
...
</dependencies>
</sub-deployment>
我正在 EAP 6.3 上开发应用程序。我需要调用休息服务,所以我使用了如下代码:
ClientRequest request = new ClientRequest(URL);
...
request.body(MediaType.APPLICATION_JSON, input);
...
ClientResponse<String> response = request.post(String.class);
...
在我的 pom 中导入了这个 bom:
<dependency>
<groupId>org.jboss.bom.eap</groupId>
<artifactId>jboss-javaee-6.0-with-resteasy</artifactId>
<version>6.3.0.GA</version>
<type>pom</type>
<scope>import</scope>
</dependency>
然后我用提供的范围定义了依赖关系:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<scope>provided</scope>
</dependency>
不幸的是,运行 之前的代码我得到了这个错误:
...
Caused by: java.lang.ClassNotFoundException: org.jboss.resteasy.client.ClientRequest from [Module "deployment.ats-ear.ear.ats-web.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final-redhat-1]
... 87 more
在modules\system\layers\base\org\jboss\resteasy\resteasy-jaxrs\main的服务器上查看实际上有jar resteasy-jaxrs-2.3.8.Final-redhat-3.jar 包含 class:org.jboss.resteasy.client.ClientRequest
我不明白我做错了什么...可能我需要在 jbooss-deployment-structure.xml?[= 中指定一些内容15=]
如果我将 resteasy-jaxrs 的范围设置为编译,一切正常,但我认为将服务器上已经存在的库放在耳边不是个好主意。
我通过在 jboss-deployment-structure 中添加适当的模块解决了这个问题。xml:
<deployment>
<dependencies>
....
<module name="org.jboss.resteasy.resteasy-jaxrs" export="true" meta-inf="export" slot="main"/>
<module name="org.jboss.resteasy.resteasy-jackson-provider" export="true" meta-inf="export" slot="main"/>
</dependencies>
</deployment>
<sub-deployment name="ats-web.war">
<dependencies>
...
</dependencies>
</sub-deployment>