我的基于Jboss服务器6.1的Web应用程序存在问题。当我尝试在服务器上部署它时会抛出错误:
Deployment "vfs:///E:/Instalki/jboss/jboss-as-distribution-6.1.0.Final/jboss-6.1.0.Final/server/default/deploy/WholesaleApp.war" is in error due to the following reason(s): org.jboss.deployers.spi.DeploymentException: Only one JAX-RS Application Class allowed. org.glassfish.jersey.server.ResourceConfig org.glassfish.jersey.server.ResourceConfig$WrappingResourceConfig org.glassfish.jersey.server.ResourceConfig$RuntimeConfig
当我尝试向我的应用添加简单的REST服务时,会发生这种情况。这是这个类的代码:
@Path("/wholesale")
@Stateless
public class WholesaleREST implements WholesaleInterface{
@EJB
WholesaleEJB bean;
@Override
@GET
@Path("/get")
public String getCars() {
List<Clients> listOfClients = bean.getClients();
StringWriter sw = new StringWriter();
ClientsContainer container = new ClientsContainer(listOfClients);
JAXB.marshal(container, sw);
return sw.toString();
}
}
我不知道为什么会发生这种情况,服务器或我的班级或netbeans出现问题?我在互联网上寻找这个问题,他们建议改变web.xml(我没有这样的文件,我有jboss-web.xml)或修改文件并删除服务器配置文件中的一些我也没有的行。 我必须为我的大学做一个包含数据库,sesson bean,休息服务和带有swing的客户端应用程序的项目。当我不得不与服务器,而不是代码本身战斗时,它是如此令人沮丧。请帮帮我,我真的不知道该怎么做。
修改。没人知道?
答案 0 :(得分:5)
删除它:
<extension module=”org.jboss.as.jaxrs”/>
<subsystem xmlns=”urn:jboss:domain:jaxrs:1.0″/>
from:standalone.xml
答案 1 :(得分:1)
对于将来遇到同样问题的人:我删除了所有球衣罐,但错误消失了。
答案 2 :(得分:0)
我遇到了同样的问题,并通过删除重复的球衣罐解决了。 意识到各种泽西罐子,如客户端,捆绑,核心,JSON,服务器......
所有看起来都不同但它们会引起问题。
答案 3 :(得分:0)
发生此错误是因为war文件中包含的REST库(作为依赖项)与容器(JBOSS)link here中的默认REST实现冲突。您可以通过以下两种方法解决此问题:
一种方法是禁用JBOSS(在standalone.xml中)的默认REST实现
另一种方法是删除项目中的任何REST实现依赖项(.jar文件)。
答案 4 :(得分:0)
如here所述。
您可以尝试将下一行添加到web.xml文件中
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.providers</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.resources</param-name>
<param-value>false</param-value>
</context-param>