Hi,

 

I have now write my own serializer and deserializer classes additionally the Factory classes. When I start my tomcat server I see in the log file:

 

2524 [main] DEBUG org.apache.axis.i18n.ProjectResourceBundle  - org.apache.axis.i18n.resource::handleGetObject(exception00)

 2534 [main] DEBUG org.apache.axis.encoding.ser.BaseSerializerFactory  - Exception:

 java.lang.NoSuchMethodException: confuoco.encoding.ContentIDSerializerFactory.create(java.lang.Class, javax.xml.namespace.QName)

            at java.lang.Class.getMethod(Class.java:1581)

            at org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory(BaseSerializerFactory.java:254)

            at org.apache.axis.deployment.wsdd.WSDDService.deployTypeMapping(WSDDService.java:534)

            at org.apache.axis.deployment.wsdd.WSDDService.initTMR(WSDDService.java:245)

            at org.apache.axis.deployment.wsdd.WSDDService.<init>(WSDDService.java:225)

            at org.apache.axis.deployment.wsdd.WSDDDeployment.<init>(WSDDDeployment.java:191)

            at org.apache.axis.deployment.wsdd.WSDDDocument.setDocument(WSDDDocument.java:139)

            at org.apache.axis.deployment.wsdd.WSDDDocument.<init>(WSDDDocument.java:65)

            at org.apache.axis.configuration.FileProvider.configureEngine(FileProvider.java:179)

            at org.apache.axis.AxisEngine.init(AxisEngine.java:172)

            at org.apache.axis.AxisEngine.<init>(AxisEngine.java:156)

            at org.apache.axis.server.AxisServer.<init>(AxisServer.java:88)

            at org.apache.axis.server.DefaultAxisServerFactory.createServer(DefaultAxisServerFactory.java:109)

            at org.apache.axis.server.DefaultAxisServerFactory.getServer(DefaultAxisServerFactory.java:73)

            at org.apache.axis.server.AxisServer.getServer(AxisServer.java:73)

            at org.apache.axis.transport.http.AxisServletBase.getEngine(AxisServletBase.java:185)

            at org.apache.axis.transport.http.AxisServletBase.getOption(AxisServletBase.java:396)

            at org.apache.axis.transport.http.AxisServletBase.init(AxisServletBase.java:112)

            at javax.servlet.GenericServlet.init(GenericServlet.java:212)

            at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:888)

            at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:776)

            at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3363)

            at org.apache.catalina.core.StandardContext.start(StandardContext.java:3586)

            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:774)

            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:760)

            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:548)

            at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:260)

            at org.apache.catalina.core.StandardHost.install(StandardHost.java:741)

            at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:512)

            at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:354)

            at org.apache.catalina.startup.HostConfig.start(HostConfig.java:671)

            at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)

            at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

            at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1149)

            at org.apache.catalina.core.StandardHost.start(StandardHost.java:707)

            at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)

            at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316)

            at org.apache.catalina.core.StandardService.start(StandardService.java:450)

            at org.apache.catalina.core.StandardServer.start(StandardServer.java:2143)

            at org.apache.catalina.startup.Catalina.start(Catalina.java:463)

            at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)

            at org.apache.catalina.startup.Catalina.process(Catalina.java:129)

            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

            at java.lang.reflect.Method.invoke(Method.java:585)

            at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)

 

I don’t understand what is wrong. My server-config.wsdd is configured like:

 

<service name="CContentExchangeValidatorService" provider="java:RPC">

  <parameter name="allowedMethods" value="*"/>

  <parameter name="typeMappingVersion" value="1.2"/>

  <parameter name="wsdlPortType" value="CContentExchangeValidatorService"/>

  <parameter name="className" value="confuoco.webservice.CContentExchangeValidatorServiceSoapBindingSkeleton"/>

  <parameter name="wsdlServicePort" value="CContentExchangeValidatorService"/>

  <parameter name="wsdlTargetNamespace" value="urn:webservice.confuoco"/>

  <parameter name="wsdlServiceElement" value="CContentExchangeValidatorServiceService"/>

  <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns1:ConfuocoException" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:confuoco.exception.ConfuocoException" xmlns:ns1="http://exception.confuoco"/>

  <typeMapping deserializer="confuoco.encoding.ContentIDDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="ns2:ContentID" serializer="confuoco.encoding.ContentIDSerializerFactory" type="java:confuoco.contentcontainer.ContentID" xmlns:ns2="http://contentcontainer.confuoco"/>

 </service>

 

Can anybody show me, what I’am doing wrong?

 

Thanks for any help in advance.

 

Regards

Ferruh  

 

 


Von: Ferruh Zamangoer [mailto:[EMAIL PROTECTED]
Gesendet: Montag, 30. Mai 2005 10:17
An: [email protected]
Betreff: Serializer & Deserializer

 

Hi,

 

I have the problem that I want to use a class as a parameter of a method which is not a basic data type of java. I have defined a interface like:

 

public interface CContentExchangeValidatorService extends java.rmi.Remote

{

    public boolean validateContent(ContentID contentID)

            throws java.rmi.RemoteException,ConfuocoException;

}

 

Code of the ContentID class:

 

public interface ContentID

{

            public byte[] getFingerprint();

            public void setFingerprint(byte[] fingerprint);

            public boolean equals(ContentID contentID);

            public boolean similar(ContentID contentID);

}

 

And I have to classes which implements the interface above and are the concrete classes HashValue and Fingerprint.

 

This means when I’ am calling the validateContent() method I send a HashValue object or a Fingerprint object. How can I realize it that Axis understands this type of object? I read in a book that it’s possible to write own Serializer and Deserializer classes, but it’s preferred to use the BeanSerializer and BeanDeserializer classes instead of custom Serializer and Deserialzer.

 

Can anybody help me or can give any suggestions how to solve the problem?

 

Thanks for any help in advance.

 

Regards

Ferruh

Attachment: ContentIDSerializerFactory.java
Description: Binary data

Attachment: ContentIDDeserializerFactory.java
Description: Binary data

Attachment: ContentIDSerializer.java
Description: Binary data

Attachment: ContentIDDeserializer.java
Description: Binary data

Attachment: cevs.wsdl
Description: Binary data

Reply via email to