는 pom.xml
이 작동하는 웹 서비스에 대한 클라이언트를 생성 자동으로 다음이 포함되어 내하는 WSDL은 아래에 지정된 데 :"기본 wsdl을 초기화 할 수 없습니다 ..."- 이유가 무엇입니까?
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>generate-sources</id>
<configuration>
<sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/wsdl/myclient.wsdl</wsdl>
<extraargs>
<extraarg>-client</extraarg>
<extraarg>-verbose</extraarg>
</extraargs>
<wsdlLocation>wsdl/myclient.wsdl</wsdlLocation>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
이 프로젝트는 오류나 경고없이, 잘 구축하고 난에 파일 myclient.wsdl
을 볼 수 있습니다 JAR 파일은 wsdl
폴더 바로 아래에 있습니다.
하지만 그 JAR 실행하려고하면
java -Xmx1028m -jar myclient-jar-with-dependencies.jar
그것은
왜 "WSDL/myclient.wsdl에서 기본 WSDL을 초기화 할 수 없습니다"고 불만을?
무엇이 누락 되었습니까?
어떻게 pom.xml 파일 에서wsdl/myclient.wsdl
는 클라이언트의 JAR 런타임에 불만을 만드는,로 변환하는 것이 어떤 경로를
을 찾을 수 있습니다 ?
업데이트 : 나는 자동 생성 된 코드를 수정하는 것을 포함 몇 가지 솔루션/해결 방법을 알고 :
- 패스 "널 (null)"은 WSDL URL에 대한 다음 ((BindingProvider) 포트)를 사용합니다. getRequestContext(). put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://example.com/ ....") 주소를 설정하십시오.
- WSDL을 Java 자원으로로드하고 pass its location into your service's constructor을로드하십시오.
는하지만 같은 pom.xml
에 올바른 값을 입력해야하는 솔루션에 더 많은 관심을 오전 classpath approach (하지만 불행히도 클래스 경로는 어떤 이유로 나를 위해 작동하지 않았다).
내가 대신 입력해야하는 아이디어가 있습니까? 분명히 이것은 특정 플러그인에 대한 올바른 경로 규칙을 알아내는 아주 간단한 경우이지만, 나는 뭔가를 놓치고 있으며 그 경로가 무엇인지 알지 못합니다.
+1 그리고 그것이 내가 내 문제를 해결하기 위해 한 것이기 때문에 받아 들였습니다. 그러나 pom.xml의 wsdl/myclient.wsdl이 런타임에 **로 변환되는 경로를 찾는 방법은 아직 미스터리입니다 ** ** – Withheld