Dear all, please help me. i'm using Tomcat V6.0 and Axis 1.4. i've got a mapping error. when putting a Loacle parameter, a mapping error occurred. when omitting a Locale parameter, no error occurred and it works fine. what should i do ?
Best Regards. Stack trace are below. {http://xml.apache.org/axis/}stackTrace:java.io.IOException: [en]-(No serializer found for class java.util.Locale in registry org.apache.axis.encoding.typemappingdeleg...@6025e7) at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1507) at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980) at org.apache.axis.encoding.SerializationContext.outputMultiRefs(SerializationContext.java:1055) at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:145) at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478) at org.apache.axis.message.MessageElement.output(MessageElement.java:1208) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269) at org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:530) at org.apache.axis.attachments.AttachmentsImpl.getAttachmentCount(AttachmentsImpl.java:554) at org.apache.axis.Message.getContentType(Message.java:486) at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:343) at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at TestClient.TestClient.main(TestClient.java:81) {http://xml.apache.org/axis/}hostname:FM-B05870457267 java.io.IOException: [en]-(No serializer found for class java.util.Locale in registry org.apache.axis.encoding.typemappingdeleg...@6025e7) at org.apache.axis.AxisFault.makeFault(AxisFault.java:101) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:317) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269) at org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:530) at org.apache.axis.attachments.AttachmentsImpl.getAttachmentCount(AttachmentsImpl.java:554) at org.apache.axis.Message.getContentType(Message.java:486) at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:343) at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at TestClient.TestClient.main(TestClient.java:81) Caused by: java.io.IOException: [en]-(No serializer found for class java.util.Locale in registry org.apache.axis.encoding.typemappingdeleg...@6025e7) at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1507) at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980) at org.apache.axis.encoding.SerializationContext.outputMultiRefs(SerializationContext.java:1055) at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:145) at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478) at org.apache.axis.message.MessageElement.output(MessageElement.java:1208) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315) ... 16 more Exception in thread "main" AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: [en]-(No serializer found for class java.util.Locale in registry org.apache.axis.encoding.typemappingdeleg...@6025e7) faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.io.IOException: [en]-(No serializer found for class java.util.Locale in registry org.apache.axis.encoding.typemappingdeleg...@6025e7) at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1507) at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980) at org.apache.axis.encoding.SerializationContext.outputMultiRefs(SerializationContext.java:1055) at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:145) at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478) at org.apache.axis.message.MessageElement.output(MessageElement.java:1208) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269) at org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:530) at org.apache.axis.SOAPPart.getContentLength(SOAPPart.java:229) at org.apache.axis.Message.getContentLength(Message.java:510) at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:371) at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at TestClient.TestClient.main(TestClient.java:81) {http://xml.apache.org/axis/}hostname:FM-B05870457267 java.io.IOException: [en]-(No serializer found for class java.util.Locale in registry org.apache.axis.encoding.typemappingdeleg...@6025e7) at org.apache.axis.AxisFault.makeFault(AxisFault.java:101) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:317) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:269) at org.apache.axis.SOAPPart.saveChanges(SOAPPart.java:530) at org.apache.axis.SOAPPart.getContentLength(SOAPPart.java:229) at org.apache.axis.Message.getContentLength(Message.java:510) at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:371) at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at TestClient.TestClient.main(TestClient.java:81) Caused by: java.io.IOException: [en]-(No serializer found for class java.util.Locale in registry org.apache.axis.encoding.typemappingdeleg...@6025e7) at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1507) at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980) at org.apache.axis.encoding.SerializationContext.outputMultiRefs(SerializationContext.java:1055) at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:145) at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:478) at org.apache.axis.message.MessageElement.output(MessageElement.java:1208) at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:315) ... 16 more -----<.jws>----- import java.lang.Object; import java.util.Locale; public class TestTest2Locale { public String TestTestShowName(String inputString, Locale locale) { Locale localeWork = locale.getDefault(); return("Norio Sasagawa" + localeWork); } public String TestTestEchoName(String inputString, Locale locale) { Locale localeWork = locale.getDefault(); return(inputString + localeWork); } } -----<.wsdl>----- <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://DefaultNamespace" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://DefaultNamespace" xmlns:intf="http://DefaultNamespace" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--WSDL Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT) / [en]-(WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT))--> <wsdl:message name="TestTestShowNameRequest"> <wsdl:part name="in0" type="soapenc:string"/> <wsdl:part name="in1" type="xsd:anyType"/> </wsdl:message> <wsdl:message name="TestTestShowNameResponse"> <wsdl:part name="TestTestShowNameReturn" type="soapenc:string"/> </wsdl:message> <wsdl:message name="TestTestEchoNameResponse"> <wsdl:part name="TestTestEchoNameReturn" type="soapenc:string"/> </wsdl:message> <wsdl:message name="TestTestEchoNameRequest"> <wsdl:part name="in0" type="soapenc:string"/> <wsdl:part name="in1" type="xsd:anyType"/> </wsdl:message> <wsdl:portType name="TestTest2Locale"> <wsdl:operation name="TestTestShowName" parameterOrder="in0 in1"> <wsdl:input message="impl:TestTestShowNameRequest" name="TestTestShowNameRequest"/> <wsdl:output message="impl:TestTestShowNameResponse" name="TestTestShowNameResponse"/> </wsdl:operation> <wsdl:operation name="TestTestEchoName" parameterOrder="in0 in1"> <wsdl:input message="impl:TestTestEchoNameRequest" name="TestTestEchoNameRequest"/> <wsdl:output message="impl:TestTestEchoNameResponse" name="TestTestEchoNameResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="TestTest2Locale.javaSoapBinding" type="impl:TestTest2Locale"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="TestTestShowName"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="TestTestShowNameRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded"/> </wsdl:input> <wsdl:output name="TestTestShowNameResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="TestTestEchoName"> <wsdlsoap:operation soapAction=""/> <wsdl:input name="TestTestEchoNameRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded"/> </wsdl:input> <wsdl:output name="TestTestEchoNameResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="TestTest2LocaleService"> <wsdl:port binding="impl:TestTest2Locale.javaSoapBinding" name="TestTest2Locale.java"> <wsdlsoap:address location="http://localhost:8080/axis/TestTest2Locale.java"/> </wsdl:port> </wsdl:service> </wsdl:definitions> -----<client test code>----- package TestClient ; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; import org.apache.axis.utils.Options; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; import java.util.Locale; import java.io.Serializable; public class TestClient implements Serializable { public static void main(String [] args) throws Exception { Options options = new Options(args); String endpoint = "http://localhost:" + options.getPort() + "/axis/TestTest2Locale.jws"; args = options.getRemainingArgs(); if (args == null || args.length > 2) { System.err.println("Usage: TestClient <TestTestShowName|TestTestEchoName> arg1-1 "); return; } String method = args[0]; if (!(method.equals("TestTestShowName") || method.equals("TestTestEchoName"))) { System.err.println("Usage: TestClient <TestTestShowName|TestTestEchoName> arg1-2 "); return; } String sTring = new String(args[1]); Locale localeString = new Locale("jp"); Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName( new QName( endpoint, method )); call.addParameter( "in0", XMLType.XSD_STRING, ParameterMode.IN ); call.addParameter( "in1", XMLType.XSD_ANYTYPE, ParameterMode.IN ); call.setReturnType( XMLType.XSD_STRING ); System.err.println("endpoint:" + endpoint); System.err.println("method :" + method); System.err.println("sTring :" + sTring); System.err.println("locale :" + localeString); String ret = (String) call.invoke( new Object [] { sTring, localeString }); System.out.println("Name : " + ret); } }