为啥我无法访问 tomcat 中的服务 CXF:HTTP 状态 500 - 内部服务器错误
Posted
技术标签:
【中文标题】为啥我无法访问 tomcat 中的服务 CXF:HTTP 状态 500 - 内部服务器错误【英文标题】:Why i cannot access to services CXF in tomcat : HTTP Status 500 - Internal Server Error为什么我无法访问 tomcat 中的服务 CXF:HTTP 状态 500 - 内部服务器错误 【发布时间】:2019-07-21 03:41:55 【问题描述】:当我在 tomcat 服务器上运行它时,它在服务页面中返回以下错误,我无法访问 WSDL 和 SOAP
我有这个错误:
HTTP 状态 500 - 内部服务器错误
键入异常报告
servlet [CXFServlet] 的“Servlet.init ()”消息引发异常
描述服务器遇到阻止它的内部错误 从满足要求。
异常 javax.servlet.ServletException: "Servlet.init()" for servlet [CXFServlet] 引发异常 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:748)
文件内容:
cxf-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:cxf="http://cxf.apache.org/core"
xmlns:soap="http://cxf.apache.org/bindings/soap"
xsi:schemaLocation="http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/bindings/soap
http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<jaxws:server id="hallo" address="/hallo">
<jaxws:serviceBean>
<bean class="CXF-Maven.DemoClass"/>
</jaxws:serviceBean>
</jaxws:server>
</beans>
http://localhost:8080/
工作正常
但是http://localhost:8080/CXF-Maven/services
我过不去
【问题讨论】:
您是否发布了服务器返回的完整堆栈跟踪?我认为在您粘贴的那个下面应该有一些嵌套异常,这将引导您(和我们)了解 CXF servlet 崩溃的原因。 我是 JavaEE 的新手,我无法理解返回的确切含义?我的文件有错误吗? 在java.lang.Thread.run(Thread.java:748)
行之后通常会出现root cause
行,然后是另一个异常。检查此处发布的示例堆栈***.com/questions/20851236/… 除非在您的情况下它是所有服务器返回/日志。
【参考方案1】:
当我在文件 pom.xml
上使用旧版本的依赖项时,我遇到了问题
将文件配置pom.xml
更新为新版本现在一切正常。谢谢
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demowb</groupId>
<artifactId>demowb</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>cxfweb Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-frontend-jaxws -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-transports-http -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>demoweb</finalName>
</build>
</project>
【讨论】:
以上是关于为啥我无法访问 tomcat 中的服务 CXF:HTTP 状态 500 - 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章
项目部署到tomcat上,tomcat能正常启动,为啥却无法访问?