当前位置: 首页 > 知识库问答 >
问题:

将RESTEasy JAX-RS应用程序部署到jboss-jbas018040:启动上下文失败

陈宜修
2023-03-14
<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>
<dependency org="org.jboss.resteasy" name="resteasy-jaxrs" rev="3.0.5.Final"/>
WEB-INF/lib/resteasy-jaxrs-3.0.5.Final.jar

14:32:42,537错误[org.jboss.msc.service.fail](ServerService线程池--316)MSC000001:未能启动服务jboss.web.deployment.default-host./search-rest:org.jboss.msc.msc.service.startException.匿名服务中的服务jboss.web.deployment.default-host./search-rest:org.jboss.msc.default-host./search-rest:S.java:511)[rt.jar:1.8.0_111]在java.util.concurrent.futureTask.run(FutureTask.java:266)[rt.jar:1.8.0_111]在java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:114)[rt.jar:1.8.0_111]在java.util.concurrent.threadpoolexecutor.java:114)[rt.jar:1.8.0_111]在s.threads.jbossThread.run(jbossThread.java:122)

由:org.jboss.msc.service.startException:JBAS018040:在org.jboss.as.web.deployment.webdeploymentService.doStart(webdeploymentService.java:161)在org.jboss.as.web.deployment.webdeploymentService.access$000(webdeploymentService.java:60)在org.jboss.as.web.deployment.webdeploymentService$1.run(webdeploymentService.java:

这是怎么回事,如何调试?

共有1个答案

宋斌
2023-03-14

好的,罪魁祸首是下面的罐子:

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>

…没有必要。没有它,一切都能正常工作。

最后,另一个有效的配置是删除scanner元素:

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

…但是,在这种情况下,必须提供javax.ws.rs.core.application子类:

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;        
 }
}
<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>
 类似资料:
  • 我在两个独立的Web应用程序中工作,一个后台和前端应用程序。有趣的是,当我运行后端时,我没有任何问题。但在前端,我遇到了以下错误: 两者都在同一个Tomcat上运行。我的同事有相同的代码,它工作正常:-s

  • 我试图在配置为eclipse的Jboss服务器中部署ear文件,但当我试图部署它时,它总是以超时异常结束。我试图增加我的服务器超时时间,但似乎没有帮助。但是同一个ear当我尝试在eclipse之外的同一台服务器上部署时,它被成功地部署,即使在通过google处理了几个相关问题之后,也无法找到根案例。 根据我的观察,这个问题似乎不是由于jboss配置造成的,因为当直接部署时,同一个ear和服务器似乎

  • 我正试图将我的spring应用程序部署到heroku,但我相信maven插件中存在一些错误。尝试了所有可能的版本组合,在本地工作,但在部署时不工作。 当我跑步的时候: git push heroku master 以下是错误: 4.0.0 org.springframework.Boot Spring-Boot-starter-parent 2.3.3.发布com.project techupda

  • 我是JBoss AS的新手。我正在尝试将我的web应用程序从“pivotal tc server”部署到“JBOSS AS 7.1” 我删除了“pivotal tc server”,只保留JBoss作为7.1 运行服务器后,控制台中会显示以下消息。。。 15: 07:29488信息[org.jboss.modules]jboss模块版本1.1.1。乔治亚州 15: 07:31595信息[org.j

  • null 我已经对应用程序进行了编码,并创建了一个标准ear,其结构如下 app.ear _lib(具有所有必需的JAR,如公共日志) application.xml:- 现在,当我用JBoss7的管理控制台部署这个ear时,web模块似乎已经部署,甚至页面也被点击了。但是,我试图将EJB注入到servlet中的应用程序的另一部分(作为使用@EJB的实例变量)失败了。 我部署应用程序的方式似乎有些

  • 在我解释这个问题之前,我只想指出,我对NetBeans和Tomcat完全陌生,我正在做一个学校项目。话虽如此,但问题正是如题所言。下面是我尝试运行一个简单的Hello World jsp时的输出: 在C:\User\lostl\OneDrive\Documents\NetBeansProjects\Project3\build\web部署正在进行中...部署?config=file:/C:/Use