Return-Path: Delivered-To: apmail-cxf-users-archive@www.apache.org Received: (qmail 59260 invoked from network); 10 Oct 2009 05:14:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 10 Oct 2009 05:14:30 -0000 Received: (qmail 68313 invoked by uid 500); 10 Oct 2009 05:14:29 -0000 Delivered-To: apmail-cxf-users-archive@cxf.apache.org Received: (qmail 68233 invoked by uid 500); 10 Oct 2009 05:14:29 -0000 Mailing-List: contact users-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@cxf.apache.org Delivered-To: mailing list users@cxf.apache.org Received: (qmail 68222 invoked by uid 99); 10 Oct 2009 05:14:29 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 10 Oct 2009 05:14:29 +0000 X-ASF-Spam-Status: No, hits=1.5 required=10.0 tests=NORMAL_HTTP_TO_IP,SPF_HELO_PASS,SPF_PASS,WEIRD_PORT X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of lists@nabble.com designates 216.139.236.158 as permitted sender) Received: from [216.139.236.158] (HELO kuber.nabble.com) (216.139.236.158) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 10 Oct 2009 05:14:19 +0000 Received: from isper.nabble.com ([192.168.236.156]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1MwUHG-0001dc-4X for users@cxf.apache.org; Fri, 09 Oct 2009 22:13:58 -0700 Message-ID: <25831156.post@talk.nabble.com> Date: Fri, 9 Oct 2009 22:13:58 -0700 (PDT) From: jackalista To: users@cxf.apache.org Subject: cxf.aegis.DatabindingException: Cannot create mapping for java.util.List, unspecified component type for method getAll parameter -1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: jack@twaxx.com X-Virus-Checked: Checked by ClamAV on apache.org Hi, I'm trying to integrate mule which uses CXF and Aegis under the hood into a current appfuse dist and am running into a binding exception. I've set the binding to use Aegis, and it looks like it's having trouble with a service super class that features a method "getAll()" with a parameterized List return value where type variable T is set to a domaon model class by the instantiating extending class. The method signature is here: List getAll(); At run time, extending class FooManagerImpl which implements interface FooManager, is instantiated and it's inherited getAll() method sig looks like this (Foo.java is the the hibernate persistent domain model class): List getAll(); I've tried to use both the standard appfuse dist which includes xfire and I also tried replacing xfire with CXF in appfuse but both suffer the same Aegis binding exception about a failure to map the List return value of getAll(). I'm taking this to mean that mule is using CXF / Aegis I tried exposing the superclass getAll method directly in the subclass interface and implementation and then put this annotation on it to try to keep Aegis from trying to bind it but it had no effect. I followed docs on annotations for this here: http://cwiki.apache.org/CXF20DOC/developing-a-service.html#DevelopingaService-DevelopingaServiceusingJAXWS The annotation, which was apparently ignored, looks like this, but the wsdl still showed the getAll() method: @WebMethod(exclude = true) public List getAll(); I also tried to use an Aegis XML mapping file which I placed in the jar alonside the interface class [see attached screendump] is called FooManager.aegis.xml [the class it is to map is the service interface FooManager.class / FooManager.java, etc.]. The mapping class looks like this: Docs on using mapping files is here (for aegis 2.1, as I'm using CXF 2.1.5), see the section on "Services and Parameters": http://cwiki.apache.org/CXF20DOC/aegis-21.html It seems that both the exlude annotation and the aegis mapping file are both being oignored but as I'm new to boeth CXF and Aegis, it may be due to use error. In the version of appfuse in which I replaced xfire with cxf, I used the version of cxf that the latest mule apparently uses which is 2.1.5. The web app *is* able to expose the same annotated service interface and class properly as a web service and publishes the wsld at localhost:8080/services/FooService?wsdl as would be expected. It looks like appfuse and mule each have their own instance of CXF but I'm not sure about that. While the web app and its CXF properly publish the web service, mule and the CXF it uses are hitting an exception related to Aegis trying to map the getAll() method and failing. The exception being thrown is: Caused by: org.apache.cxf.aegis.DatabindingException: Error initializing parameters for operation {http://service.integration.jackalista.org/}getAll: Cannot create mapping for java.util.List, unspecified component type for method getAll parameter -1 Can anybody point me in the right direction? It seems like the aegis mapping code is having trouble with the parameterized List getAll() return value where T = Foo.java at run time. I uploaded a small zip file of relevant files if that helps... http://www.nabble.com/file/p25831156/jarfile.and.scrn.dump.zip jarfile.and.scrn.dump.zip I suspect that I may be doing something naive / stupid with the mapping file, the annotation or may perhaps be approaching this incorrectly, any help would be greatly appreciated, thanks. --jack My mule config is loaded via the listener from web.xml, essentially I too the bookstore demo code configuration and grafted it onto an appfuse dist. Here's the service configuration for the service experiencing the binding exception, FooService: Fisrt I import my spring (2.5.6) applicationContext.xml with my service interface & impl in it: Then, here's the service deinition http://www.nabble.com/file/p25831156/aegis.binding.problem.zip aegis.binding.problem.zip -- View this message in context: http://www.nabble.com/cxf.aegis.DatabindingException%3A-Cannot-create-mapping-for-java.util.List%2C-unspecified-component-type-for-method-getAll-parameter--1-tp25831156p25831156.html Sent from the cxf-user mailing list archive at Nabble.com.