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:[EMAIL PROTECTED]
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:[EMAIL PROTECTED] 
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; } } } 


Reply via email to