Hi,

We have noticed that when sending Hello messages to the discovery proxy we
need to set soap headers wsdlURI and serviceName in the namespace "http://*
www.wso2.org*/ws/discovery". The discovery client for axis2 services adds
these, so the Hello messages works fine. But we were trying to integrate
ws-discovery with JAX-WS services for which CXF provides it's own
ws-discovery client. This client does not include the above said headers
(obviously). GReg fails to process this request and throws following
exception. [1]

It seems we have to infer the service name and wsdl location using the info
we can receive through  spec-compliant message content. But as I've seen we
can not infer the wsdl urls for jax-ws services since the Hello request
does not contain the fully qualified url in wsd:XAddrs (ex. -
/hello_world). [3] This is a bit strange!

I have included the ws-dd Hello soap requests of the client of axis2
services [2], and the client for jax-ws services [2] for comparison.

[1] ERROR {org.wso2.carbon.discovery.proxy.DiscoveryProxy} -  Error while
persisting the service description
java.lang.NullPointerException
at
org.wso2.carbon.governance.api.common.GovernanceArtifactManager.setContent(GovernanceArtifactManager.java:541)
at
org.wso2.carbon.governance.api.common.GovernanceArtifactManager.addGovernanceArtifact(GovernanceArtifactManager.java:184)
 at
org.wso2.carbon.governance.api.services.ServiceManager.addService(ServiceManager.java:116)
at
org.wso2.carbon.discovery.util.DiscoveryServiceUtils.addService(DiscoveryServiceUtils.java:157)
 at
org.wso2.carbon.discovery.proxy.DiscoveryProxy$1.run(DiscoveryProxy.java:89)


[2]
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
    <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing";>
        <mns:serviceName xmlns:mns="http://www.wso2.org/ws/discovery
">echo</mns:serviceName>
        <mns:wsdlURI xmlns:mns="http://www.wso2.org/ws/discovery";>
http://10.100.0.187:9763/services/echo?wsdl</mns:wsdlURI>
        <wsa:To>http://localhost:8080/services/DiscoveryProxy</wsa:To>
        <wsa:ReplyTo>
            <wsa:Address>http://www.w3.org/2005/08/addressing/none
</wsa:Address>
        </wsa:ReplyTo>

<wsa:MessageID>urn:uuid:eb8f2089-f3cd-44aa-9825-b0a6c2c83da2</wsa:MessageID>
        <wsa:Action>
http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/Hello</wsa:Action>
    </soapenv:Header>
    <soapenv:Body>
        <wsd:Hello xmlns:wsd="
http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01";>
            <wsa:EndpointReference xmlns:wsa="
http://www.w3.org/2005/08/addressing";>

<wsa:Address>urn:uuid:a776fc36-26f0-4435-b22b-5ea5925d1de2</wsa:Address>
            </wsa:EndpointReference>
            <wsd:Types xmlns:axis2ns2="
http://echo.services.core.carbon.wso2.org";>axis2ns2:echoPortType</wsd:Types>
            <wsd:Scopes>
http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/DefaultScope
</wsd:Scopes>
            <wsd:XAddrs>https://10.100.0.187:9443/services/echo
http://10.100.0.187:9763/services/echo</wsd:XAddrs>
            <wsd:MetadataVersion>1</wsd:MetadataVersion>
        </wsd:Hello>
    </soapenv:Body>
</soapenv:Envelope>


[3]
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope";
               xmlns:wsa="http://www.w3.org/2005/08/addressing";
               xmlns:tns="
http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01";>
    <soap:Header>
        <wsa:Action>
http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/Hello</wsa:Action>

<wsa:MessageID>urn:uuid:5063d2d5-4c8c-4f86-b1a0-9c3a17421af2</wsa:MessageID>
        <wsa:To>http://localhost:8080/services/DiscoveryProxy</wsa:To>
        <wsa:ReplyTo>
            <wsa:Address>http://www.w3.org/2005/08/addressing/none
</wsa:Address>
        </wsa:ReplyTo>
    </soap:Header>
    <soap:Body>
        <ns2:Hello xmlns="http://www.w3.org/2005/08/addressing";
                   xmlns:ns2="
http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01";>
            <EndpointReference>

<Address>urn:uuid:e67f250f-9402-4c53-bb1f-da1ffe985ebc</Address>
            </EndpointReference>
            <ns2:Types xmlns:ns3="http://server.hw.demo/
">ns3:HelloWorld</ns2:Types>
            <ns2:Scopes/>
            <ns2:XAddrs>/hello_world</ns2:XAddrs>
            <ns2:MetadataVersion>1</ns2:MetadataVersion>
        </ns2:Hello>
    </soap:Body>
</soap:Envelope>


-- 
*Kasun Gajasinghe*
Software Engineer;
Development Technologies Team, WSO2 Inc.; http://wso2.com


 ,
*email: **kasung AT spamfree wso2.com


** cell: **+94 (77) 678-0813*
*linked-in: *http://lk.linkedin.com/in/gajasinghe


*
*
*blog: **http://kasunbg.org* <http://kasunbg.org>


*
twitter: **http://twitter.com/kasunbg* <http://twitter.com/kasunbg>


*
*
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to