I did this GWT-RPC-WSDL integration and it works fine. Maybe not very much efficient but it works and I made quicly what I needed. I used wscompile to generate POJO java classes from WSDL. That are classes that Web server user for web services communication. They are server side classes. Then I copied server classes to client package and manually editted generated POJO classes to be GWT RPC compatible. Yes, it is duplication and bad and I would like to have the same classes for both sides but... don't have time to develop full solution Then ,Cxf knows nothing about GWT so even POJO classes has references on unsupported Java classes such as Calendar (see below example). I manually editted those file to be GWT RPC compatible. Not a big deal Then I add " implements java.io.Serializable" implementation to class definition. And then in run time translate server side classes to client and back.
Below is POJO file generated by cxf and corresponding class which is GWT-RPC compatible. See Calendar class that is not supported. Let me know if you need more help -Sergey // This class was generated by the JAXRPC SI, do not edit. // Contents subject to change without notice. // JAX-RPC Standard Implementation (1.1.3, build R1) // Generated source version: 1.1.3 package com.idirect.webnms.server.toolkit; public class NmsErrorCondition extends com.idirect.webnms.server.toolkit.NmsObject { protected java.util.Calendar timeStamp; protected com.idirect.webnms.client.toolkit.NmsErrorSeverity errorSeverity; protected java.lang.String errorMessage; public NmsErrorCondition() { } public NmsErrorCondition(int objectType, boolean initialized, java.util.Calendar timeStamp, com.idirect.webnms.client.toolkit.NmsErrorSeverity errorSeverity, java.lang.String errorMessage) { this.objectType = objectType; this.initialized = initialized; this.timeStamp = timeStamp; this.errorSeverity = errorSeverity; this.errorMessage = errorMessage; } public java.util.Calendar getTimeStamp() { return timeStamp; } public void setTimeStamp(java.util.Calendar timeStamp) { this.timeStamp = timeStamp; } public com.idirect.webnms.client.toolkit.NmsErrorSeverity getErrorSeverity() { return errorSeverity; } public void setErrorSeverity(com.idirect.webnms.client.toolkit.NmsErrorSeverity errorSeverity) { this.errorSeverity = errorSeverity; } public java.lang.String getErrorMessage() { return errorMessage; } public void setErrorMessage(java.lang.String errorMessage) { this.errorMessage = errorMessage; } } And you translate it to // This class was generated by the JAXRPC SI, do not edit. // Contents subject to change without notice. // JAX-RPC Standard Implementation (1.1.3, build R1) // Generated source version: 1.1.3 package com.idirect.webnms.client.toolkit; public class NmsErrorCondition extends com.idirect.webnms.client.toolkit.NmsObject { protected java.util.Date timeStamp; protected com.idirect.webnms.client.toolkit.NmsErrorSeverity errorSeverity; protected java.lang.String errorMessage; public NmsErrorCondition() { } public NmsErrorCondition(int objectType, boolean initialized, java.util.Date timeStamp, com.idirect.webnms.client.toolkit.NmsErrorSeverity errorSeverity, java.lang.String errorMessage) { this.objectType = objectType; this.initialized = initialized; this.timeStamp = timeStamp; this.errorSeverity = errorSeverity; this.errorMessage = errorMessage; } public java.util.Date getTimeStamp() { return timeStamp; } public void setTimeStamp(java.util.Date timeStamp) { this.timeStamp = timeStamp; } public com.idirect.webnms.client.toolkit.NmsErrorSeverity getErrorSeverity() { return errorSeverity; } public void setErrorSeverity(com.idirect.webnms.client.toolkit.NmsErrorSeverity errorSeverity) { this.errorSeverity = errorSeverity; } public java.lang.String getErrorMessage() { return errorMessage; } public void setErrorMessage(java.lang.String errorMessage) { this.errorMessage = errorMessage; } } And then you need Calendar - Date translation public static java.util.Date get(java.util.Calendar in) { return in.getTime(); } public static java.util.Calendar get(java.util.Date in) { Calendar calendar = java.util.Calendar.getInstance(); calendar.setTime(in); return calendar; } From: google-web-toolkit@googlegroups.com [mailto:google-web-toolkit@googlegroups.com] On Behalf Of Sunit Katkar Sent: Friday, April 22, 2011 11:14 AM To: google-web-toolkit@googlegroups.com Subject: Re: GWT RPC - WebServiceClient We have exact same situation and it all works. We use apache cxf as the communication between the GWT servlets and the API layer on another server. When the WSDLs are created for the apache cxf, we generate a client side jar and include it in the GWT project. This allows us access to the java objects which are created on API layer side, then transmitted as XML and finally reconstructed on GWT (UI) server side. Basically the idea is similar to generating a Java client for using your web service and then use it in your GWT servlet. I would have shared code with you but cannot as its company code and company policy, etc. Thank you, Sunit Katkar On Wed, Apr 20, 2011 at 12:17 AM, Stijn Bienkens <stijn.bienk...@k2-solutions.eu> wrote: Hello We are currently looking to optimize some of our GWT projects but we ran into a few issues. Most if not all of our data is coming from an OSGI backend. Communication between the GWT client - GWT RPC - OSGI backend is far from optimal as we have to write a lot of boiler plate code. To optimize this we were thinking of including one ( or multiple) webservices in our OSGI backend using Apache CXF. On the GWT RPC side we implemented a webservice client using Apache CXF 2 as well. However the real challenge we are facing is how to use the CXF generated objects for communication between GWT client and GWT RPC. I've came across several posts claiming this was perfectly possible but so far we haven't been successful. The Apache CXF generated classes have references to JAXBElement, when compiling this results in: "No source code is available for type javax.xml.bind.JAXBElement<T>;" Using the <super-source> tag we provided the source for JAXBElement, however this results in more of the same issues for: javax.xml.namespace.Qname, java.io.ObjectInputStream, java.lang.ClassNotFoundException, ... Is there anyway to accomplish this or another path we can follow? Thank you in advance Stijn -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com <mailto:google-web-toolkit%2bunsubscr...@googlegroups.com> . For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en. </PRE><BR><span style='font-size:8.0pt;font-family:"Arial","sans-serif";color:#003366'> _____________________________________________________<BR> This electronic message and any files transmitted with it contains<BR> information from iDirect, which may be privileged, proprietary<BR> and/or confidential. It is intended solely for the use of the individual<BR> or entity to whom they are addressed. If you are not the original<BR> recipient or the person responsible for delivering the email to the<BR> intended recipient, be advised that you have received this email<BR> in error, and that any use, dissemination, forwarding, printing, or<BR> copying of this email is strictly prohibited. If you received this email<BR> in error, please delete it and immediately notify the sender.<BR> _____________________________________________________ </SPAN><PRE> -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.