Hi Thomas.
Thanks for your answer. I am happy to be moving towards the standard web services implementation, as specified in J2EE. The problem is that I was expecting some xdoclet tags and ant tasks to help with the DDs. In Jboss.net it was great not to have to deal with descriptors ;)
Well, I followed your advice, and got a jaxrpc-mapping from JWSDP. I was quite excited to see a 10K file with lots of mappings (compared with my 10 lines file...). Sadly, I am still getting the same exception from the server. I have attached the config file, and resulting jaxrpc-mapping file at the bottom. Please, if you have any ideas on how to solve ths I would very much appreciate.
Command line to get the mapping and wsdl file:
c:\bop\tools\jwsdp-1.5\jaxrpc\bin\wscompile.bat -cp C:\bop\betty\build\classes -gen:server -f:rpcliteral -d C:\bop\betty\build\ws -f:explicitcontext -keep -mapping C:\bop\betty\build\ws\ws-mapping.xml C:\bop\betty\src\descriptors\jboss\ws-config.xml
config file:
<?xml version="1.0" encoding="UTF-8"?>
Genearted mapping file:
<?xml version="1.0" encoding="UTF-8"?>
<java-wsdl-mapping version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd">
<package-mapping>
<package-type>com.acme.betty.server.invoice</package-type>
http://www.acme.com/types
</package-mapping>
<package-mapping>
<package-type>com.acme.betty.server.invoice</package-type>
http://www.acme.com
</package-mapping>
<package-mapping>
<package-type>com.acme.betty.server.invoice._arrays.com.acme.betty.server.invoice</package-type>
http://www.acme.com/types/arrays/com/acme/betty/server/invoice
</package-mapping>
<java-xml-type-mapping>
<java-type>com.acme.betty.server.entity.InvoiceLineDTO</java-type>
<root-type-qname xmlns:typeNS="http://www.acme.com/types">typeNS:InvoiceLineDTO</root-type-qname>
<qname-scope>complexType</qname-scope>
<variable-mapping>
<java-variable-name>amount</java-variable-name>
<xml-element-name>amount</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>deleted</java-variable-name>
<xml-element-name>deleted</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>description</java-variable-name>
<xml-element-name>description</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>id</java-variable-name>
<xml-element-name>id</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>itemId</java-variable-name>
<xml-element-name>itemId</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>price</java-variable-name>
<xml-element-name>price</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>primaryKey</java-variable-name>
<xml-element-name>primaryKey</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>quantity</java-variable-name>
<xml-element-name>quantity</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>sourceUserId</java-variable-name>
<xml-element-name>sourceUserId</xml-element-name>
</variable-mapping>
</java-xml-type-mapping>
<java-xml-type-mapping>
<java-type>com.acme.betty.server.invoice.InvoiceWS</java-type>
<root-type-qname xmlns:typeNS="http://www.acme.com/types">typeNS:InvoiceWS</root-type-qname>
<qname-scope>complexType</qname-scope>
<variable-mapping>
<java-variable-name>balance</java-variable-name>
<xml-element-name>balance</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>carriedBalance</java-variable-name>
<xml-element-name>carriedBalance</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>createDateTime</java-variable-name>
<xml-element-name>createDateTime</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>currencyId</java-variable-name>
<xml-element-name>currencyId</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>customerNotes</java-variable-name>
<xml-element-name>customerNotes</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>deleted</java-variable-name>
<xml-element-name>deleted</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>dueDate</java-variable-name>
<xml-element-name>dueDate</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>id</java-variable-name>
<xml-element-name>id</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>inProcessPayment</java-variable-name>
<xml-element-name>inProcessPayment</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>isReview</java-variable-name>
<xml-element-name>isReview</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>lastReminder</java-variable-name>
<xml-element-name>lastReminder</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>number</java-variable-name>
<xml-element-name>number</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>overdueStep</java-variable-name>
<xml-element-name>overdueStep</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>paymentAttempts</java-variable-name>
<xml-element-name>paymentAttempts</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>primaryKey</java-variable-name>
<xml-element-name>primaryKey</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>toProcess</java-variable-name>
<xml-element-name>toProcess</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>total</java-variable-name>
<xml-element-name>total</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>delegatedInvoiceId</java-variable-name>
<xml-element-name>delegatedInvoiceId</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>invoiceLines</java-variable-name>
<xml-element-name>invoiceLines</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>orders</java-variable-name>
<xml-element-name>orders</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>payments</java-variable-name>
<xml-element-name>payments</xml-element-name>
</variable-mapping>
<variable-mapping>
<java-variable-name>userId</java-variable-name>
<xml-element-name>userId</xml-element-name>
</variable-mapping>
</java-xml-type-mapping>
<service-interface-mapping>
<service-interface>com.acme.betty.server.invoice.Invoice</service-interface>
<wsdl-service-name xmlns:serviceNS="http://www.acme.com">serviceNS:Invoice</wsdl-service-name>
<port-mapping>
<port-name>InvoiceServicePort</port-name>
<java-port-name>InvoiceServicePort</java-port-name>
</port-mapping>
</service-interface-mapping>
<service-endpoint-interface-mapping>
<service-endpoint-interface>com.acme.betty.server.invoice.InvoiceService</service-endpoint-interface>
<wsdl-port-type xmlns:portTypeNS="http://www.acme.com">portTypeNS:InvoiceService</wsdl-port-type>
<wsdl-binding xmlns:bindingNS="http://www.acme.com">bindingNS:InvoiceServiceBinding</wsdl-binding>
<service-endpoint-method-mapping>
<java-method-name>get</java-method-name>
<wsdl-operation>get</wsdl-operation>
<method-param-parts-mapping>
<param-position>0</param-position>
<param-type>java.lang.Integer</param-type>
<wsdl-message-mapping>
<wsdl-message xmlns:wsdlMsgNS="http://www.acme.com">wsdlMsgNS:InvoiceService_get</wsdl-message>
<wsdl-message-part-name>Integer_1</wsdl-message-part-name>
<parameter-mode>IN</parameter-mode>
</wsdl-message-mapping>
</method-param-parts-mapping>
<wsdl-return-value-mapping>
<method-return-value>com.acme.betty.server.invoice.InvoiceWS</method-return-value>
<wsdl-message xmlns:wsdlMsgNS="http://www.acme.com">wsdlMsgNS:InvoiceService_getResponse</wsdl-message>
<wsdl-message-part-name>result</wsdl-message-part-name>
</wsdl-return-value-mapping>
</service-endpoint-method-mapping>
<service-endpoint-method-mapping>
<java-method-name>getLast</java-method-name>
<wsdl-operation>getLast</wsdl-operation>
<method-param-parts-mapping>
<param-position>0</param-position>
<param-type>java.lang.Integer</param-type>
<wsdl-message-mapping>
<wsdl-message xmlns:wsdlMsgNS="http://www.acme.com">wsdlMsgNS:InvoiceService_getLast</wsdl-message>
<wsdl-message-part-name>Integer_1</wsdl-message-part-name>
<parameter-mode>IN</parameter-mode>
</wsdl-message-mapping>
</method-param-parts-mapping>
<method-param-parts-mapping>
<param-position>1</param-position>
<param-type>java.lang.Integer</param-type>
<wsdl-message-mapping>
<wsdl-message xmlns:wsdlMsgNS="http://www.acme.com">wsdlMsgNS:InvoiceService_getLast</wsdl-message>
<wsdl-message-part-name>Integer_2</wsdl-message-part-name>
<parameter-mode>IN</parameter-mode>
</wsdl-message-mapping>
</method-param-parts-mapping>
<wsdl-return-value-mapping>
<method-return-value>com.acme.betty.server.invoice.InvoiceWS[]</method-return-value>
<wsdl-message xmlns:wsdlMsgNS="http://www.acme.com">wsdlMsgNS:InvoiceService_getLastResponse</wsdl-message>
<wsdl-message-part-name>result</wsdl-message-part-name>
</wsdl-return-value-mapping>
</service-endpoint-method-mapping>
<service-endpoint-method-mapping>
<java-method-name>getLatest</java-method-name>
<wsdl-operation>getLatest</wsdl-operation>
<method-param-parts-mapping>
<param-position>0</param-position>
<param-type>java.lang.Integer</param-type>
<wsdl-message-mapping>
<wsdl-message xmlns:wsdlMsgNS="http://www.acme.com">wsdlMsgNS:InvoiceService_getLatest</wsdl-message>
<wsdl-message-part-name>Integer_1</wsdl-message-part-name>
<parameter-mode>IN</parameter-mode>
</wsdl-message-mapping>
</method-param-parts-mapping>
<wsdl-return-value-mapping>
<method-return-value>com.acme.betty.server.invoice.InvoiceWS</method-return-value>
<wsdl-message xmlns:wsdlMsgNS="http://www.acme.com">wsdlMsgNS:InvoiceService_getLatestResponse</wsdl-message>
<wsdl-message-part-name>result</wsdl-message-part-name>
</wsdl-return-value-mapping>
</service-endpoint-method-mapping>
</service-endpoint-interface-mapping>
</java-wsdl-mapping>