axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Walter Parton" <wpar...@smud.org>
Subject RE: Problems sending String parameters with Axis 1.2 RC 3 client to .Net 1.1 service
Date Wed, 09 Mar 2005 01:26:28 GMT
Sorry for the confusion then. I guess I misunderstood how to use the axis client in that I
thought that clients had be written with low level api calls. Dumb question, but which tools
in axis do I need to use to have it auto generate the message? WSDL? I thought that was only
for service not a client? Does Axis generate the java class?

Thanks

Walter

-----Original Message-----
From: Dino Chiesa [mailto:dinoch@microsoft.com]
Sent: Tuesday, March 08, 2005 3:13 PM
To: axis-user@ws.apache.org
Subject: RE: Problems sending String parameters with Axis 1.2 RC 3
client to .Net 1.1 service


 > We have to set up the service in .net as it calls a dll on a windows
machine - 

Ok, I get that part...

> hence using the "generic" soap interface which i guess is not so
interoperable after all.

I don't get why the use of .NET implies that you should or must use the
generic (low level) soap programming interfaces. 

> the client code is based on examples in the developer guide to axis
1.2 so it should work fine

True, but it sure is ugly to figure out.  The tools can generate all
that for you.   If you are really in love with the low-level API, maybe
what you can do is use the WSDL2Java to create a client stub (doc/lit),
snatch the XML on the wire with TCPMonitor, then re-work your Java AXIS
(low level) client to produce the message you see. 

-D


-----Original Message-----
From: Walter Parton [mailto:wparton@smud.org] 
Sent: Tuesday, March 08, 2005 5:55 PM
To: axis-user@ws.apache.org
Subject: RE: Problems sending String parameters with Axis 1.2 RC 3
client to .Net 1.1 service

Well the client code is based on examples in the developer guide to axis
1.2 so it should work fine . Again the connection works just that the
parameters are not picked up by the .net service. We have to set up the
service in .net as it calls a dll on a windows machine - hence using the
"generic" soap interface which i guess is not so interoperable after
all.

Walter

-----Original Message-----
From: Dino Chiesa [mailto:dinoch@microsoft.com]
Sent: Tuesday, March 08, 2005 2:21 PM
To: axis-user@ws.apache.org
Subject: RE: Problems sending String parameters with Axis 1.2 RC 3
client to .Net 1.1 service


The programming model in that client code is ...  Really obtuse. 

Can you not do a Wsdl2Java and create a client-side stub, and get
something more like: 

 Stub mystub= new Stub();
 mystub.Method1(param1, param2...) ; 

-D

-----Original Message-----
From: Walter Parton [mailto:wparton@smud.org]
Sent: Tuesday, March 08, 2005 3:46 PM
To: axis-user@ws.apache.org
Subject: Problems sending String parameters with Axis 1.2 RC 3 client to
.Net 1.1 service

Hello,
 
We have an Axis java client (Axis 1.2 RC3) that is communicating to a
.Net web service correctly, however, the rpc encoded variable problem is
cropping up and causing the .NET service to not correctly pull in the
passed strings. We know we need to turn off the rpc encoding so that the
Axis client will send the parameters as document/literal, problem is we
don't know how to turn it off in the java client code. We suspect that
with RC 3 it is doable (according to the release message it accomodates
literal/document and .net). So our plead for help is - Which property do
we set, or which flag do we toggle to turn off rpc and turn on
literal/document?

 Any assistance would be of great help! I included the client code
below. 
Thanks
Walter Parton
Documentum Consulting 

// Decompiled by DJ v3.5.5.77 Copyright 2003 Atanas Neshkov Date:
2/1/2005 7:58:00 PM // Home Page :
<http://members.fortunecity.com/neshkov/dj.html> - Check often for new
version! 
// Decompiler options: packimports(3)
// Source File Name: CalcClient.java
package samples.userguide.example2;
import java.io.PrintStream;
import java.net.URL;
import javax.xml.namespace.*;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.TypeMappingImpl;
import org.apache.axis.encoding.XMLType; import
org.apache.axis.encoding.XMLType; import org.apache.axis.utils.Options;
import org.apache.axis.encoding.*; 


public class rm_call
{
public rm_call()
{
}
public static void main(String args[])
throws Exception
{
Options options = new Options(args);
String endpoint = "<http://edmw04/RM/SMUDRecord.asmx>";
String action = "<http://rm.com/webservices/Synchronize>";
//SOAPMappingREgistry smr = new SOAPMappingRegistry();
//StringDeserializer sd = new StringDeserializer(); 


args = options.getRemainingArgs();
if(args == null || args.length != 6)
{
//String method = args[0];
//if(!method.equals("add") && !method.equals("subtract")) //{
System.err.println("Usage: rm_call prefix fileLevel subject author
docbase documentId"); return; } else { String strPrefix = new
String(args[0]) ; String strFileLevel = new String(args[1]); String
strSubject = new String(args[2]); String strAuthor = new
String(args[3]); String strDocbase = new String(args[4]); String
strDocId = new String(args[5]); String method = "Synchronize"; Service
service = new Service(); Call call = (Call)service.createCall(); //set
the target to the RMSynchronization service
call.setTargetEndpointAddress(new URL(endpoint));
call.setOperationName(method); TypeMappingImpl.dotnet_soapenc_bugfix =
true; 

call.addParameter("prefix", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("fileLevel", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("subject", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("author", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("docbase", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("documentId", XMLType.XSD_STRING, ParameterMode.IN);
/*
call.addParameter("prefix", XMLType.QNAME_LITERAL_ITEM,
ParameterMode.IN); call.addParameter("fileLevel",
XMLType.QNAME_LITERAL_ITEM, ParameterMode.IN);
call.addParameter("subject", XMLType.QNAME_LITERAL_ITEM,
ParameterMode.IN); call.addParameter("author",
XMLType.QNAME_LITERAL_ITEM, ParameterMode.IN);
call.addParameter("docbase", XMLType.QNAME_LITERAL_ITEM,
ParameterMode.IN); call.addParameter("documentId",
XMLType.QNAME_LITERAL_ITEM, ParameterMode.IN); */ //String strEncode =
call.getEncodingStyle(); //call.SEND_TYPE_ATTR = false;
//call.addParameter("", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
call.setUseSOAPAction(true);
call.setSOAPActionURI(action); 

//call.setProperty(Call.OPERATION_STYLE_PROPERTY,""); 

//call.setProperty("javax.xml.rpc.encodingstyle.namespace.uri",""); 

//call.setEncodingStyle("<http://schemas.xmlsoap.org/soap/encoding/>");
// System.out.println("encode = " + strEncode); 

String ret = "" ;
//String ret = (String)call.invoke(new Object[]
{strPrefix,strFileLevel,strSubject,strAuthor,strDocbase,strDocId});
try { 

ret = (String)call.invoke(new Object[]
{strPrefix,strFileLevel,strSubject,strAuthor,strDocbase,strDocId});
}
catch (Exception e)
{
System.out.println("Got result : " + ret + e.getMessage()); }
System.out.println("Got result : " + ret ); return; } } } 



Mime
View raw message