A SOAP implementation that I use achieves a simplification of SOAP
development by having only one method which is exposed and that method
is the same for any application so developed. The one parameter of that
method is an array of (DOM) Elements and it returns an array of
Elements. Because an Element can be the top node of a DOM tree any
information is able to be passed in the SOAP message and the
specification of methods is essentially eliminated.
A control element is one of the elements in the Element Array to
further define the requirements of the call and is generally analogous
to the request which wraps the request parameters. Another control
element is in the return array in which you can wrap return responses as
converted to strings via DOM which SOAP converts to xml.
Juan Ondiviela said the following on 4/10/2008 6:58 AM:
Hello, I'm trying to develop a Web Service under Tomcat and axis using
Java. I'm just beginning so I deployed a service with the basic method
"executeCommand". I've implemented a client which invokes this
method... Until here everything works fine, the problem comes with the
response via SOAP. Since the return value is a jess.Value object and
it's not directly serializable, I cannot get the right answer at the
client side (I receive a null object). I would like to know how could
I solve this problem, I tried this code:
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new
java.net.URL(endpointURL) );
call.setOperationName(new
QName("urn:myJess","executeCommand"));
call.addParameter( "arg1", XMLType.XSD_STRING,
ParameterMode.IN);
call.setReturnType(
org.apache.axis.encoding.XMLType.XSD_ANYTYPE );
QName qname = new QName( "urn:myJess", "Value" );
call.registerTypeMapping(Value.class, qname,
new
org.apache.axis.encoding.ser.BeanSerializerFactory(Value.class, qname),
new
org.apache.axis.encoding.ser.BeanDeserializerFactory(Value.class,
qname));
Value ret = (Value) call.invoke( new Object[] { textToSend
} );
and I added this to the wsdd file
<beanMapping qname="myNS:Value"
xmlns:myNS="urn:myJess"
languageSpecificType="java:jess.Value"/>
</service>
I think it doesn't work because jess.Value is not a Bean Class.
Then, I also tried
<typeMapping qname="typeNS:Value"
xmlns:typeNS="urn:myJess"
languageSpecificType="java:"
serializer="ValueSerFactory"
deserializer="ValueDeserFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</service>
but since all jess.Value attributes are declared private, I cannot
compile the classes which implement serialization/deserialization of
jess values.
Thank you very much, I'd be very grateful if could get this problem fixed.
Juan
--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the list
(use your own address!) List problems? Notify [EMAIL PROTECTED]
--------------------------------------------------------------------