반응형
Java 8에서 Java 11로의 JAXWS 애플리케이션 이행
호환성이 있는 조합을 찾고 있습니다.org.apache.cxf:cxf-spring-boot-starter-jaxws와 함께jaxws-api/jaxws-riJava 10+로 설정합니다.
Java 8에서는 어플리케이션이 정상적으로 동작합니다.
또한 Java 9 및 10에서는--add-modules=java.se.ee.
그러나 이 옵션을 제거하고 다음 종속 항목을 추가할 경우:
compile group: 'javax.xml.ws', name: 'jaxws-api', version: '2.3.0'
compile group: 'com.sun.xml.ws', name: 'jaxws-ri', version: '2.3.0.2', ext: 'pom'
compile group: 'com.sun.xml.ws', name: 'jaxws-rt', version: '2.3.0.2', ext: 'pom'
공통 의존관계(java 9/10 또는 java 8에서 --add-param 포함/미포함):
compile('org.apache.cxf:cxf-spring-boot-starter-jaxws:3.2.6')
나는 다음과 같이 된다.
Caused by: java.lang.NoSuchMethodError: javax.jws.WebMethod.exclude()Z
at org.apache.cxf.jaxws.support.JaxWsServiceConfiguration.isOperation(JaxWsServiceConfiguration.java:190)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.isValidMethod(ReflectionServiceFactoryBean.java:1962)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.createInterface(ReflectionServiceFactoryBean.java:999)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:461)
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:695)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:530)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:263)
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:103)
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:168)
at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:460)
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:338)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:255)
at .....
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 44 more
스프린트 부트에 대해서는 확실히 주의해 주세요만, JAX를 취득하려면Java 11에서 동작하는 WS를 사용하고 있습니다.
<profiles>
<!-- add back the jaxws SOAP dependendies which were removed in JDK11 -->
<profile>
<id>jdk11</id>
<activation>
<jdk>[11,)</jdk>
</activation>
<!-- tested working with OpenJDK 11.0.8 -->
<dependencies>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.3.3</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>rt</artifactId>
<version>2.3.3</version>
</dependency>
</dependencies>
</profile>
</profiles>
이 제거에 관한 문서(JEP 320)에는 위험과 가정이라는 항목이 있으며, Java EE 모듈에서 jaxws-ri 및 jaxb-ri와 같은 제거 방법을 제안합니다.
제 경우 Java 8에서 javax.jws 패키지를 사용하다가 Java 11에서 삭제되었습니다.JEP가 제안하는 바와 같이 Java 11에서 다시 작동하려면 다음과 같은 종속성을 추가해야 합니다.
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-ri</artifactId>
<version>2.3.2</version>
<type>pom</type>
</dependency>
당신의 경우 다른 의존관계도 필요할 수 있습니다.JEP의 권장사항을 참조해 주십시오.
언급URL : https://stackoverflow.com/questions/51892528/migration-jaxws-application-from-java-8-to-java-11
반응형
'programing' 카테고리의 다른 글
| Woocommerce - 고객이 특정 역할인 경우 다른 PayPal 이메일 주소를 설정합니다. (0) | 2023.03.23 |
|---|---|
| Java용 JWT(JSON Web Token) 라이브러리 (0) | 2023.03.23 |
| 클래스 속성을 정수라고 지정하려면 어떻게 해야 합니까? (0) | 2023.03.18 |
| 업데이트 후 사용자가 FireBase 앱에 로그인하도록 하려면 어떻게 해야 합니까? (0) | 2023.03.18 |
| Wordpress 플러그인 개발에 부트스트랩을 포함하려면 어떻게 해야 합니까? (0) | 2023.03.18 |