>source

생성 된 클라이언트 (jaxws-maven-plugin 사용)에서 더 이상 내 wsdl 위치를 정적으로 만들지 않으려 고했지만 성공하지 못했습니다.

찾아낸 것은 다음과 같습니다 ..

내 플러그인 (pom 빌드의 플러그인에 있음) :

<plugin>            <groupId>org.codehaus.mojo</groupId>            <artifactId>jaxws-maven-plugin</artifactId>            <executions>                <execution>                    <id>ecad-ws</id>                    <phase>generate-sources</phase>                    <goals>                        <goal>wsimport</goal>                    </goals>                    <configuration>                        <sourceDestDir>${basedir}/target/generated-sources</sourceDestDir>                        <keep>true</keep>                        <verbose>true</verbose>                        <extension>true</extension>                        <wsdlDirectory>src/main/resources</wsdlDirectory>                        <wsdlFiles>                            <wsdlFile>CBS.wsdl</wsdlFile>                        </wsdlFiles>                        <wsdlLocation>http://localhost/wsdl/msw/cbs?wsdl</wsdlLocation>                        <catalog>                            ${basedir}/src/main/resources/META-INF/jax-ws-catalog.xml
                        </catalog>                    </configuration>                </execution>            </executions>        </plugin>

및 jax-ws-catalog 파일 (src /main /resources /META-INF에 있음) :

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system"><system
    systemId="http://localhost/wsdl/msw/cbs?wsdl"
    uri="../CBS.wsdl" /></catalog>

CBS.wsdl은 src /main /resouces에 있습니다. 내 연구를 이해하는 한 위 code는 생성 된 클라이언트의 URL을 다음과 같이 변경합니다. http : //localhost /wsdl /msw /cbs? wsdl(작동 중입니다) 클라이언트가 호출되면 카탈로그를 찾고 위의 URL을 ../CBS.wsdl과 일치시킵니다. 다음 예외가 발생했기 때문에 마지막 부분이 작동하지 않습니다.

Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:94)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:204)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:148)
... 118 more
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR:   Problem parsing 'http://localhost/wsdl/msw/cbs?wsdl'.: java.net.ConnectException: Connection refused: connect
at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:244)
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:191)
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:92)
... 120 more
Caused by: java.net.ConnectException: Connection refused: connect

다른 해결책을 찾을 수 없습니다. 생성 된 클라이언트에서 wsdl 위치를 변경하지 않으면 항상 "파일 : XXXXX에서 WSDL에 액세스하지 못했습니다."(완전히 정상적인 것)와 같은 메시지가 나타납니다.

jdk 7 btw를 사용하고 있습니다 ..

  • 답변 # 1

    이 답변은 약 6 년 늦었지만 ...

    저는 2021 년에 Java 11을 사용하여 내 저장소 ..에 카탈로그 파일을 설정하는 방법을 찾고있을 때이 질문에 대해 배웠습니다. 내 저장소에서 작동하도록 관리했고 위의 구성을 살펴 보았습니다. 제가 말할 수있는 유일한 것은 추가해야 할 수도 있다는 것입니다.$ {basedir}~로< wsdlDirectory >부분.

    ...
        <wsdlDirectory>${basedir}src/main/resources</wsdlDirectory>...
    

    나는 REST 시대에 wsdl 연결을 구현해야하는 지친 다음 개발자 (나와 같은)를 위해 여기에 남겨두고 있습니다.

  • 이전 c# : Xamarin.Forms에서 카메라 용 Android 및 IOS SDK 함수에 액세스
  • 다음 sql : XML 데이터 쿼리