2016-12-28 24 views
0

我想部署一個JAX-RS應用程序到JBoss EAP 6.2。我的web.xml有以下幾種:將一個RESTEasy JAX-RS應用程序部署到JBoss - JBAS018040:無法啓動上下文

<servlet> 
    <servlet-name>resteasy-servlet</servlet-name> 
    <servlet-class> 
     org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher 
    </servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>resteasy-servlet</servlet-name> 
    <url-pattern>/jax-rs/*</url-pattern> 
</servlet-mapping> 


<context-param> 
    <param-name>resteasy.servlet.mapping.prefix</param-name> 
    <param-value>/jax-rs</param-value> 
</context-param> 

<listener> 
    <listener-class> 
     org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap 
    </listener-class> 
</listener> 

<context-param> 
    <param-name>resteasy.scan</param-name> 
    <param-value>true</param-value> 
</context-param> 

&hellip;並且我將以下內容作爲部署依賴項:

<dependency org="org.jboss.resteasy" name="resteasy-jaxrs" rev="3.0.5.Final"/> 

&hellip;所以我在我的WAR以下JAR:

WEB-INF/lib/resteasy-jaxrs-3.0.5.Final.jar 

然而,當我部署WAR到JBoss我得到以下跟蹤:

14:32:42537 ERROR [org.jboss.msc .service.fail](服務器服務線程池 - 316)MSC000001:無法啓動服務jboss.web.deployment.default-host./search-rest:服務jboss.web.deployment中的org.jboss.msc.service.StartException .default-host。/ search-rest:匿名服務中的org.jboss.msc.service.StartException:JBAS018040:無法在org.jboss.as.web.deployment.WebDeploymentService $ 1.run處啓動上下文 (WebDeploymentService.java: 96)(java.util.concurrent.Executors)上的$ RunnableAdapter.call(Executors.java:511)[rt.jar:1.8.0_111] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[rt。 jar:1.8.0_111] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[rt.jar:1.8.0_111] at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java :617)[rt.jar:1.8.0_111] at java.lang.Thread.run(Thread.java:745)[rt.jar:1.8.0_111] at org.jboss.threads.JBossThread.run(JBossThread的.java:122)

引起的:在匿名服務org.jboss.msc.service.StartException:JBAS018040:無法在org.jboss.as.web.deployment.WebDeploymentService.doStart開始上下文 (網絡DeploymentService.java:161) at org.jboss.as.web.deployment.WebDeploymentService.access $ 000(WebDeploymentService.java:60) at org.jboss.as.web.deployment.WebDeploymentService $ 1.run(WebDeploymentService.java: 93) ... 6更多

這是怎麼回事,我該如何調試呢?

回答

0

好了,罪魁禍首是以下jar:

WEB-INF/lib/resteasy-jaxrs-3.0.5.Final.jar 

一旦我刪除了依賴,它的工作。這很有意義,因爲RESTEasy與JBoss EAP捆綁在一起,所以不需要將它放在WAR的WEB-INF/lib中。

另外,我發現下面的元素從我web.xml

<listener> 
    <listener-class> 
     org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap 
    </listener-class> 
</listener> 

&hellip;沒有必要。一切工作都沒有它。

最後的作品被除去掃描器元件的額外配置:

<context-param> 
    <param-name>resteasy.scan</param-name> 
    <param-value>true</param-value> 
</context-param> 

&hellip;在這種情況下,必須提供一個javax.ws.rs.core。應用子類:

import java.util.Set; 
import java.util.HashSet; 

import javax.ws.rs.ApplicationPath; 
import javax.ws.rs.core.Application; 

public class JaxRsApplication extends Application { 

private Set<Object> singletons = new HashSet<Object>(); 

public JaxRsApplication() { 
    singletons.add(new SearchResource()); 
} 

@Override 
public Set<Object> getSingletons() { 
    return singletons;   
} 
} 

&hellip;並用RESTEasy servlet註冊:

<servlet> 
    <servlet-name>resteasy-servlet</servlet-name> 
    <servlet-class> 
     org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher 
    </servlet-class> 
    <init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>mjb44.searchapp.rest.JaxRsApplication</param-value> 
    </init-param> 
</servlet> 
相關問題