문제

나는 내 웹 서비스에 간단하게있다 public boolean isAlive() 서비스. 내 wsdl에서 정의했습니다.

<wsdl:types>
    <xsd:element name="isAliveResponse" type="xsd:boolean">
    </xsd:element>
</wsdl:types>
<wsdl:message name="isAliveResponse">
    <wsdl:part element="ns:isAliveResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="myService">
    <wsdl:operation name="isAlive">
        <wsdl:output message="ns:isAliveResponse"/>
    </wsdl:operation>
</wsdl:portType>
<wsdl:binding name="myServiceSOAP" type="ns:myService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="isAlive">
    <soap:operation soapAction="http://myServiceURL/isAlive" />
    <wsdl:input>
        <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
        <soap:body use="literal" />
    </wsdl:output>
</wsdl:operation>
</wsdl:binding>

서비스 골격을 생성하면 메소드가 생성되지만 클라이언트 스텁에는 생성되지 않습니다. WSDL에 문제가 있습니까? 메소드에 인수가없는 경우에도 WSDL을 넣어야합니까 (전체 WSDL을 넣지 않았지만 "요청"이있는 다른 모든 메소드가 잘 생성됩니다)? 그리고 WSDL을 넣어야한다면 : 입력 메시지는 무엇입니까?

편집하다 : Eclipse에서 WSDL을 검증 한 후 경고가 있습니다. WS-I: (BP2208) wsdl:operation was not a request/response or one-way operation 검색 후 여기에서 설명을 찾았습니다. http://www.ws-i.org/testing/tools/2005/01/bp11_tad_1-1.htm#bp2208 (앵커가 작동하지 않는 것 같습니다) 오류가 아마도 누락 된 WSDL : 입력 일 것 같습니다.

도움이 되었습니까?

해결책

내 편집에서 말했듯이 문제는 누락 된 WSDL : 입력이었습니다. 추가하여

<wsdl:input message="ns:isAliveRequest" />

그리고

<wsdl:message name="isAliveRequest"></wsdl:message>

그런 다음 내 원래의 문제가 해결되었습니다 ... 결론, 나는 그렇게 묻기 전에 혼자서 더 많은 검색을해야했습니다 :(

다른 팁

이것이 당신의 문제인지 확실하지 않지만 다음 줄에는 닫는 태그가없는 것 같습니다.

<wsdl:types>
    <xsd:element name="isAliveResponse" type="xsd:boolean">
</wsdl:types>

다음과 같아야합니다.

<wsdl:types>
    <xsd:element name="isAliveResponse" type="xsd:boolean"/>
</wsdl:types>

도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top