Jboss错误:只允许一个JAX-RS应用程序类

时间:2015-09-14 23:25:00

标签: java rest jboss

我的基于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的客户端应用程序的项目。当我不得不与服务器,而不是代码本身战斗时,它是如此令人沮丧。请帮帮我,我真的不知道该怎么做。

修改。没人知道?

5 个答案:

答案 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>