You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Mark Roder <mr...@wamnet.com> on 2002/01/28 15:29:16 UTC
Issue - exception being ignored in Call.registerTypeMapping
My client code is doing this:
Service service = new Service();
Call aCall = (Call) service.createCall();
aCall.setTargetEndpointAddress(url);
aCall.setOption(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
aCall.setOption(AxisEngine.PROP_SEND_XSI, Boolean.FALSE);
aCall.setOption(Call.SEND_TYPE_ATTR, Boolean.FALSE);
QName userQName = new QName("",
"User");
LOG.debug("Here we go");
aCall.registerTypeMapping(User.class,
userQName,
new BeanSerializerFactory(User.class,
userQName,
BeanSerializer.FORCE_UPPER),
new BeanDeserializerFactory(User.class,
userQName));
aCall.setReturnType(Constants.XSD_STRING);
RPCParam userParam = new RPCParam("User", aUser) ;
String ret = (String)aCall.invoke("Login",
new Object [] {userParam });
Message msg = aCall.getResponseMessage();
SOAPEnvelope env=msg.getSOAPPart().getAsSOAPEnvelope();
SOAPHeader sessionHeader = env.getHeaderByName(
"urn:schemas-wamnet-com:Session","SessionID");
String aString = (String) sessionHeader.getValueAsType(new
QName(Constants.URI_2001_SCHEMA_XSD, "string"));
sessionId = aString.trim();
I added the following logging code to Call
public void registerTypeMapping(Class javaType, QName xmlType,
SerializerFactory sf,
DeserializerFactory df,
boolean force) {
// Get the TypeMappingRegistry
TypeMappingRegistry tmr = msgContext.getTypeMappingRegistry();
category.debug("tmr of " + tmr);
// If a TypeMapping is not available, add one.
TypeMapping tm = (TypeMapping)
tmr.getTypeMapping(Constants.URI_CURRENT_SOAP_ENC);
category.debug("tm of " + tm);
try {
if (tm == null) {
tm = (TypeMapping) tmr.createTypeMapping();
tmr.register(tm, new String[]
{Constants.URI_CURRENT_SOAP_ENC});
category.debug("after tmr.register" + tmr);
}
if (!force && tm.getClassForQName(xmlType) != null)
{
category.debug("going to just return");
return;
}
// Register the information
tm.register(javaType, xmlType, sf, df);
category.debug("after tm.register" + tm);
} catch (Exception e)
{
category.error("Caught and eating exception",e);
}
}
Here is the trace of the run.
2002-01-28 08:21:58,788 DEBUG archive.soapclient.ArchiveService :: Enter
login
2002-01-28 08:21:59,379 DEBUG apache.axis.AxisEngine :: Enter:
AxisEngine::init
2002-01-28 08:21:59,750 DEBUG apache.axis.AxisEngine :: Exit:
AxisEngine::init
2002-01-28 08:21:59,870 INFO axis.client.Call :: Transport is
org.apache.axis.transport.http.HTTPTransport@200185
2002-01-28 08:21:59,870 DEBUG archive.soapclient.ArchiveService :: Here we
go
2002-01-28 08:21:59,870 DEBUG axis.client.Call :: tmr of
org.apache.axis.encoding.TypeMappingRegistryImpl@43c315
2002-01-28 08:21:59,870 DEBUG axis.client.Call :: tm of
org.apache.axis.encoding.DefaultTypeMappingImpl@3c9c31
2002-01-28 08:21:59,900 ERROR axis.client.Call :: Caught and eating
exception
javax.xml.rpc.JAXRPCException
at org.apache.axis.encoding.TypeMappingImpl.register(Unknown Source)
at org.apache.axis.client.Call.registerTypeMapping(Unknown Source)
at org.apache.axis.client.Call.registerTypeMapping(Unknown Source)
at
com.wamnet.archive.soapclient.ArchiveService.login(ArchiveService.java:115)
at
com.wamnet.archive.soapclient.ArchiveServiceLoginTEST.testLogin_Invalid(Arch
iveServiceLoginTEST.java:28)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:166)
at junit.framework.TestCase.runBare(TestCase.java:140)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:131)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at junit.swingui.TestRunner$17.run(TestRunner.java:644)
2002-01-28 08:21:59,900 DEBUG axis.client.Call :: Enter: Call::invoke(ns,
meth, args)
2002-01-28 08:21:59,920 DEBUG axis.client.Call :: Enter:
Call::invoke(RPCElement)
2002-01-28 08:21:59,950 DEBUG apache.axis.Message :: Attachment support is
enabledfalse
2002-01-28 08:21:59,970 DEBUG apache.axis.Message :: Enter SOAPPart ctor
(FORM_SOAPENVELOPE)
2002-01-28 08:21:59,990 DEBUG axis.encoding.SerializationContextImpl ::
register 'SOAP-ENV' - 'http://schemas.xmlsoap.org/soap/envelope/'
2002-01-28 08:22:00,040 DEBUG axis.utils.NSStack :: NSPush (0)
2002-01-28 08:22:00,040 DEBUG axis.encoding.SerializationContextImpl ::
register 'xsd' - 'http://www.w3.org/2001/XMLSchema'
2002-01-28 08:22:00,040 DEBUG axis.encoding.SerializationContextImpl ::
register 'xsi' - 'http://www.w3.org/2001/XMLSchema-instance'
2002-01-28 08:22:00,040 DEBUG axis.encoding.SerializationContextImpl ::
Start element [http://schemas.xmlsoap.org/soap/envelope/]:Envelope
2002-01-28 08:22:00,070 DEBUG axis.utils.NSStack :: NSPush (1)
2002-01-28 08:22:00,070 DEBUG axis.message.SOAPEnvelope :: 0 headers
2002-01-28 08:22:00,070 DEBUG axis.encoding.SerializationContextImpl ::
Start element [http://schemas.xmlsoap.org/soap/envelope/]:Body
2002-01-28 08:22:00,070 DEBUG axis.utils.NSStack :: NSPush (2)
2002-01-28 08:22:00,070 DEBUG axis.encoding.SerializationContextImpl :: End
element SOAP-ENV:Body
2002-01-28 08:22:00,110 DEBUG axis.utils.NSStack :: NSPop (2)
2002-01-28 08:22:00,110 DEBUG axis.encoding.SerializationContextImpl :: End
element SOAP-ENV:Envelope
2002-01-28 08:22:00,110 DEBUG axis.utils.NSStack :: NSPop (1)
2002-01-28 08:22:00,110 DEBUG apache.axis.Message :: Setting current message
form to: FORM_SOAPENVELOPE (currentMessage is now <SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body/>
</SOAP-ENV:Envelope>)
2002-01-28 08:22:00,140 DEBUG axis.message.SOAPEnvelope :: Adding body
element to message...
2002-01-28 08:22:00,140 DEBUG axis.client.Call :: Enter: Call::invoke()
2002-01-28 08:22:00,140 DEBUG apache.axis.Message :: Enter:
SOAPPart::getAsSOAPEnvelope; currentForm is FORM_SOAPENVELOPE
2002-01-28 08:22:00,140 DEBUG apache.axis.MessageContext :: MessageContext:
setTargetService()
2002-01-28 08:22:00,140 DEBUG apache.axis.MessageContext :: MessageContext:
setServiceHandler(null)
2002-01-28 08:22:00,180 DEBUG axis.client.Call :: TargetService:
2002-01-28 08:22:00,180 DEBUG apache.axis.MessageContext :: MessageContext:
setTargetService(null)
2002-01-28 08:22:00,180 DEBUG apache.axis.MessageContext :: MessageContext:
setServiceHandler(null)
2002-01-28 08:22:00,180 DEBUG axis.encoding.SerializationContextImpl ::
register 'SOAP-ENV' - 'http://schemas.xmlsoap.org/soap/envelope/'
2002-01-28 08:22:00,180 DEBUG axis.utils.NSStack :: NSPush (0)
2002-01-28 08:22:00,200 DEBUG axis.encoding.SerializationContextImpl ::
register 'xsd' - 'http://www.w3.org/2001/XMLSchema'
2002-01-28 08:22:00,200 DEBUG axis.encoding.SerializationContextImpl ::
register 'xsi' - 'http://www.w3.org/2001/XMLSchema-instance'
2002-01-28 08:22:00,200 DEBUG axis.encoding.SerializationContextImpl ::
Start element [http://schemas.xmlsoap.org/soap/envelope/]:Envelope
2002-01-28 08:22:00,200 DEBUG axis.utils.NSStack :: NSPush (1)
2002-01-28 08:22:00,251 DEBUG axis.message.SOAPEnvelope :: 0 headers
2002-01-28 08:22:00,251 DEBUG axis.encoding.SerializationContextImpl ::
Start element [http://schemas.xmlsoap.org/soap/envelope/]:Body
2002-01-28 08:22:00,251 DEBUG axis.utils.NSStack :: NSPush (2)
2002-01-28 08:22:00,251 DEBUG axis.encoding.SerializationContextImpl ::
Start element []:Login
2002-01-28 08:22:00,251 DEBUG axis.utils.NSStack :: NSPush (3)
2002-01-28 08:22:00,281 DEBUG axis.client.Call :: <?xml version="1.0"
encoding="UTF-8"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<Loginjava.io.IOException: No serializer found for class
com.wamnet.archive.soapclient.value.User in registry
org.apache.axis.encoding.SerializationContextImpl@c5e9c
at
org.apache.axis.encoding.SerializationContextImpl.serializeActual(Unknown
Source)
at
org.apache.axis.encoding.SerializationContextImpl.serialize(Unknown Source)
at org.apache.axis.message.RPCParam.serialize(Unknown Source)
at org.apache.axis.message.RPCElement.outputImpl(Unknown Source)
at org.apache.axis.message.MessageElement.output(Unknown Source)
at org.apache.axis.message.SOAPEnvelope.outputImpl(Unknown Source)
at org.apache.axis.message.MessageElement.output(Unknown Source)
at org.apache.axis.client.Call.invoke(Unknown Source)
at org.apache.axis.client.Call.invoke(Unknown Source)
at org.apache.axis.client.Call.invoke(Unknown Source)
at org.apache.axis.client.Call.invoke(Unknown Source)
at
com.wamnet.archive.soapclient.ArchiveService.login(ArchiveService.java:135)
at
com.wamnet.archive.soapclient.ArchiveServiceLoginTEST.testLogin_Invalid(Arch
iveServiceLoginTEST.java:28)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:166)
at junit.framework.TestCase.runBare(TestCase.java:140)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:131)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at junit.framework.TestSuite.runTest(TestSuite.java:173)
at junit.framework.TestSuite.run(TestSuite.java:168)
at junit.swingui.TestRunner$17.run(TestRunner.java:644)