Thanks Fried,
Tried it just now and way hay!
I was expecting the XFireProxyFactory and the dynamic client to want the
same URL.
Fried Hoeben wrote:
The ObjectServiceFactory client does not need the WSDL as far as I'm
aware. Have you tried giving it the service URL (i.e. without ?wsdl at
the end)?
Fried
-----Original Message-----
From: Stuart Barlow [mailto:[EMAIL PROTECTED]
Sent: donderdag 11 mei 2006 10:39
To: [email protected]
Subject: Re: [xfire-user] MTOM and Spring test
Still not happy. And the only difference in the requests (observed in
tunnel) between the working dynamic client and the not-working
ObjectServiceFactory client is the first line...
Not Working...
POST /hc/webservices/ICollaborationServiceTwo?wsdl HTTP/1.1
Working...
POST /hc/webservices/ICollaborationServiceTwo HTTP/1.1
Yet both clients are using the same URL...
http://edi-stuart:8090/hc/webservices/ICollaborationServiceTwo?wsdl
The dynamic client is making a first request to the ?wsdl URL to get
the WSDL and the ObjectServiceFactory client is making the actual
SOAP request to the ?wsdl URL and the SOAP envelope to getting ignored
and the server just returns the WSDL which the client cannot parse
as it is expecting a logon response.
Dan Diephouse wrote:
Hi Stuart,
Try doing
Service serviceModel = new
ObjectServiceFactory().create(ICollaborationServiceTwo.class,
"Name",
"namespace", null);
- Dan
Stuart Barlow wrote:
The request is sent using the wrong namespace when I use the
client...
Service serviceModel = new
ObjectServiceFactory().create(ICollaborationServiceTwo.class);
ICollaborationServiceTwo service =
(ICollaborationServiceTwo)
new XFireProxyFactory().create(serviceModel, url);
Is there a way to set the target namespace?
The correct namespace is used when I use the dynamic client.
Stuart Barlow wrote:
I am trying to call a method on my MTOM enabled service and get
the
following
error...
org.codehaus.xfire.XFireRuntimeException: Could not invoke
service..
Nested exception is org.codehaus.xfire.fault.XFireFault: There
must
be a method name element.
org.codehaus.xfire.fault.XFireFault: There must be a method name
element.
at
org.codehaus.xfire.service.binding.WrappedBinding.readMessage(WrappedBin
di
ng.java:31)
at
org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.j
av
a:42)
at
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:9
8)
at org.codehaus.xfire.client.Client.onReceive(Client.java:448)
at
org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.
ja
va:174)
at
org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:66)
at
org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java
:2
6)
at
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:9
8)
at org.codehaus.xfire.client.Client.invoke(Client.java:359)
at
org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
at
org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
at $Proxy0.logon(Unknown Source)
at
com.hummingbird.hc.api.MTOMTest.testGetDocumentData(MTOMTest.java:41)
Spring service configuration...
<bean name="CollaborationServiceTwo"
class="org.codehaus.xfire.spring.ServiceBean">
<property name="serviceBean"
ref="collaborationServiceTwo"/>
<property name="serviceClass"
value="com.hummingbird.hc.api.ICollaborationServiceTwo"/>
<property name="namespace"
value="http://hemp.hummingbird.com/v1/hemp"/>
<property name="properties">
<map>
<entry>
<key><value>mtom-enabled</value></key>
<value>true</value>
</entry>
</map>
</property>
<property name="inHandlers">
<list>
<ref bean="addressingHandler"/>
</list>
</property>
</bean>
The Java interface with 3 methods is...
public interface ICollaborationServiceTwo {
String logon(String username, String password, String
organization,
String remoteLocation) throws HCException;
void logoff(String sessionID) throws HCException;
DataHandler getDocumentData(String sessionID, String
documentID,
int version, boolean returnData) throws
HCException;
}
The error is when I call the logon method.
Should I only call...
client.setProperty("mtom-enabled", "true");
when I want to call a DataHandler or byte[] method?
ta,
Stuart
--
Stuart
--
Stuart