我正試圖使用Apache CXF創建一個SOAP java第一網路服務,并從maven archetype:org.apache.cxf.archetype開始。我的應用服務器是標準的Apache Tomcat v10.0.
。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"/span>>
<modelVersion>/span>4.0.0</modelVersion>/span>
<groupId>com.tsdevelopment</groupId>
<artifactId>soap-cxf-javafirst-tomcat</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>/span>
<name>Simple CXF Java-first SOAP project using Spring configuration</name>
<description>簡單的CXF Java-first SOAP專案使用Spring配置</description>
<dependencies>>
<dependency>>
<groupId>/span>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>/span>3.4.4</version>/span>
</dependency>/span>
<dependency>>
<groupId>/span>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>/span>3.4.4</version>/span>
</dependency>/span>
<dependency>>
<groupId>/span>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>/span>5.2.15.RELEASE</version>
</dependency>/span>
<dependency>>
<groupId>junit</groupId>/span>
<artifactId>junit</artifactId>
<version>/span>4.13.2</version>/span>
<scope>test</scope>
</dependency>/span>
<dependency>>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>/span>4.0.1</version>/span>
<scope>provided</scope>
</dependency>/span>
<dependency>>
<groupId>/span>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>/span>3.3.1</version>/span>
<type>/span>maven-plugin</type>/span>
</dependency>/span>
</dependencies>
<build>/span>
<pluginManagement>>
<plugins>/span>
<plugin>/span>
<!-- mvn clean install tomcat:run-war to deploy
尋找 "在http://xxx 上運行war "和
"將服務器的發布地址設為/yyy"
在控制臺輸出中;WSDL 瀏覽器地址將是
兩者的串聯:http://xxx/yyy?wsdl
-->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>/span>
<執行>/span>
<execution>>
<id>/span>start-tomcat</id>/span>
<goals>/span>
<goal>run-war</goal>
</目標>/span>
<階段>預集成-測驗</階段>
<configuration>/span>
<port>${test.server.port}</port>
<path>/webservice</path>
<fork>true</fork>
<useSeparateTomcatClassLoader>/span>true</useSeparateTomcatClassLoader>/span>
</configuration>/span>
</執行>/span>
</executions>/span>
</plugin>/span>
<plugin>/span>
<groupId>/span>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>/span>
<source>16</source>/span>
<target>16</target>/span>
</configuration>/span>
</plugin>/span>
<plugin>/span>
<groupId>/span>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>/span>
<projectNameTemplate>[artifactId]-[version]</projectNameTemplate>/span>
<wtpmanifest>true</wtpmanifest>
<wtpapplicationxml>true</wtpapplicationxml>/span>
<wtpversion>2.0</wtpversion>
</configuration>/span>
</plugin>/span>
<plugin>/span>
<groupId>/span>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>/span>3.3.1</version>/span>
</plugin>/span>
</plugins>/span>
</pluginManagement>/span>
</build>/span>
</project>
完整的錯誤:
SEVERE: 在配置[org.springframework.web.context.ContextLoaderListener]類的應用監聽器時出錯。
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
在 java.base/java.lang.ClassLoader.findBootstrapClass(Native Method)
在 java.base/java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:1260)
at java.base/java.lang.System$2.findBootstrapClassOrNull(System.java:2196)
at java.base/jdk.internal.loader.ClassLoaders$BootClassLoader.loadClassOrNull(ClassLoaders.java:135)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:695)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:671)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1284)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1187)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:540)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:521)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4589)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5126)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execut(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:843)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execut(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:434)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
uj5u.com熱心網友回復:
Spring框架尚未支持Tomcat 10.
Tomcat 10使用Jakarta EE 9,它將javax.*包遷移到jakarta.*,所以Spring框架還沒有支持jakarta.*包。
在Spring框架支持Tomcat 10之前,你必須使用Tomcat 9.
。參考文獻:
<醇>轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/319421.html
標籤:
