1 Reply Latest reply on Nov 27, 2008 6:06 AM by bartatamas

    Cannot obtain java type mapping

    bartatamas

      Hi!

      I'm trying to create a web service from a session bean:

      package foo.ejb;

      import java.util.logging.Logger;

      /**
      * @ejb.bean name="MerchTermWS"
      * jndi-name="MerchTermWS"
      * type="Stateless"
      * view-type="service-endpoint"
      */
      public class MerchTermWSBean implements SessionBean {
      public void ejbActivate() throws EJBException {}
      public void ejbPassivate() throws EJBException {}
      public void ejbRemove() throws EJBException {}
      public void setSessionContext(SessionContext arg0) throws EJBException {}

      /**
      * @ejb.create-method
      */
      public void ejbCreate() throws javax.ejb.CreateException {}

      /**
      * @ejb.interface-method view-type = "service-endpoint"
      */
      public void receiveImNotif(ReceiveImNotifIn data) {
      }
      }

      The wsdl contains only one operation with one input parameter:

      ...





      ...

      The input parameter is complex type. from xsd:

      ...
      <xs:element name="receiveImNotifIn">
      <xs:complexType>
      <xs:sequence>
      <xs:element name="merchTermId" type="xs:int" />
      <xs:element name="merchTrxId" type="xs:int" />
      <xs:element name="bankTrxId" type="xs:int" />
      <xs:element name="bankTrxResult" type="xs:int" />
      <xs:element name="authCode" type="authCodeType" />
      <xs:element minOccurs="0" name="mpiCat" type="xs:int" />
      <xs:element name="isRepeated" type="xs:boolean" />
      </xs:sequence>
      </xs:complexType>
      </xs:element>
      ...

      I generated a Java class for this type, using wsimport tool
      (foo.ReceiveImNotifIn)


      When I deploy the bean, the JBoss say:

      org.jboss.ws.WSException: Cannot obtain java type mapping for: {http://mf.cellum.com/MerchantManagement}>receiveImNotifIn

      Can somebody help me how can I set type mappings?
      In the source code of JavaWS I see that a TypeMappingRegistryImpl object is instantiated and returns a newly created TypeMappingImpl for encoding: literal. The LiteralTypeMapping class registers some data types, but I don't know how to add my foo.ReceiveImNotifIn to this. I think the java-type-mapping in wsdl is not good for this problem because it dies earlier.

      Thanks, Tamas