|
List Info
Thread: Creating client
|
|
| Creating client |

|
2006-02-22 18:33:58 |
|
Jose,
I am not sure why you are not seeing the
headers in the response8230;This may be a question for the Addressing team as
it is their client. The fact that you got a response shows that you
successfully made your request to the server.
It just may be something in their objects
or the way you are printing out the response, I am not sure and have not had
much experience using their generated clients230;
-S
From: José Antonio
Sánchez [mailto:getaceres gmail.com]
Sent: Wednesday, February 22, 2006
12:33 PM
To: wsrf-user ws.apache.org
Subject: Creating client
Hi, I'm using MUSE to develop a service. The problem is that it does
not supply a way to generate a client stub to use the service.
Using the Apache Addressing WSDL2Java utility, I generated a client stub for my
service, but when I call it, it does not send any header. This is the test
code:
public static void main(String[] args) {
try {
String url = "http://localhost:8081/muse/services/Ssh";
EndpointReferenceType
epr = new EndpointReferenceType();
epr.setAddress(new
AttributedURI(url));
SshServiceAddressingLocator locator =
new SshServiceAddressingLocator();
SOAPHeaderElement
resourceIdentifier = new
org.apache.axis.message.SOAPHeaderElement("ResourceIdentifier","wsrf");
ReferencePropertiesType props = new ReferencePropertiesType();
props.add(resourceIdentifier);
epr.setProperties(props);
SshPortType port =
locator.getSsh(epr);
System.out.println
(port.getResourceProperty(new QName("status")));
But I only get this request:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/"
xmlns sd="http://www.w3.org/2001/XMLSchema"
xmlns si=" http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<GetResourceProperty
xmlns="
http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd">
<GetResourceProperty>status</GetResourceProperty>
</GetResourceProperty>
</soapenv:Body>
</soapenv:Envelope>
I know the request is not well composed, but why there is no Header section at
all? Woudn't it have to have a To element at least?
--
Saludos.
José Antonio Sánchez
|
| Creating client |

|
2006-02-22 18:52:19 |
|
The SOAP message I posted is the request I made to the server, I captured it with TCPMon. Indeed it gets to the server, but I get a fault in response saying that I need to send WS-Addressing headers. I managed to do some operations adding the headers by hand in the following way:
public static void setHeaders(SshPortType client, String to, String action, String resourceId) { String pt = "http://abc.com/my/wsdl/namespace
"; String wsa = "http://schemas.xmlsoap.org/ws/2004/03/addressing"; org.apache.axis.message.PrefixedQName resourceIdentifierName = new
org.apache.axis.message.PrefixedQName(pt,"ResourceIdentifier","pt"); org.apache.axis.message.PrefixedQName toName = new org.apache.axis.message.PrefixedQName(wsa,"To","wsa");
org.apache.axis.message.PrefixedQName actionName = new org.apache.axis.message.PrefixedQName(wsa,"Action","wsa"); org.apache.axis.message.SOAPHeaderElement resourceIdElement = new
org.apache.axis.message.SOAPHeaderElement(resourceIdentifierName); resourceIdElement.setValue(resourceId); resourceIdElement.setMustUnderstand(true); org.apache.axis.message.SOAPHeaderElement
toElement = new org.apache.axis.message.SOAPHeaderElement(toName); toElement.setValue(to); toElement.setMustUnderstand(true); org.apache.axis.message.SOAPHeaderElement actionElement = new
org.apache.axis.message.SOAPHeaderElement(actionName); actionElement.setValue(action); actionElement.setMustUnderstand(true);
Stub stub = (Stub)client; stub.setHeader
(toElement); stub.setHeader(actionElement); stub.setHeader(resourceIdElement); }
But WS-Addressing is supposed to do that for me, so, apart from generating a Stub that doesn't work with standard wsrf operations like GetResourceProperty, the Addressing WSDL2Java seems usseles to me.
It's a shame that they don't have any documentation at all, appart from a poor commented API documents and a devel mailing list (not a user mailing list). Does the CVS version of Muse or WSRF has a WSDL2Java that generates client stubs?
On 2/22/06, Campana Jr., Salvatore J <hp.com">sal.campana hp.com> wrote:
Jose,
I am not sure why you are not seeing the
headers in the response…This may be a question for the Addressing team as
it is their client. The fact that you got a response shows that you
successfully made your request to the server.
It just may be something in their objects
or the way you are printing out the response, I am not sure and have not had
much experience using their generated clients…
-S
Hi, I'm using MUSE to develop a service. The problem is that it does
not supply a way to generate a client stub to use the service.
Using the Apache Addressing WSDL2Java utility, I generated a client stub for my
service, but when I call it, it does not send any header. This is the test
code:
public static void main(String[] args) {
try {
String url = "http://localhost:8081/muse/services/Ssh";
EndpointReferenceType
epr = new EndpointReferenceType();
epr.setAddress(new
AttributedURI(url));
SshServiceAddressingLocator locator =
new SshServiceAddressingLocator();
SOAPHeaderElement
resourceIdentifier = new
org.apache.axis.message.SOAPHeaderElement("ResourceIdentifier","wsrf | |