This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
We are currently developing a Web service that receives (string) data and subsequently stores it using Hibernate. When we run this Web service directly in Eclipse (using the axis2 plugin), everything works perfectly.
However, when we try deploying it as an .aar archive (using Netbean's deploy feature, via their axis2 plugin) and running it in Apache Tomcat, we initially kept getting the error "ids for this class must be manually assigned before calling save()". Eventually, I found out that this is caused by the fact that we were assigning null ids to the objects, which in itself was caused by the fact that the argument the method receives is null. When I check the client however, the correct data *is* being sent.
Subsequently, I tried making a very simple Web service and client, where the Web service has one method that receives a string and simply prints it to stdout.. but this Web service does not work either (likewise, null is received as an argument). As mentioned before, I used Netbeans to automatically generate the .aar archive (however, we also tried making that archive using maven and even doing it manually), and tried generating the client from both Eclipse and Netbeans (choosing different databindings, different endpoints, ..), but no effect. Finally, I tried an earlier axis2 version (1.0, as it is the only version before 1.5.0 that is still available online, and 1.1 gives errors). The generated Netbeans client works more or less for this axis2 version (i.e., the Web service actually receives sent method arguments), but 1) no return values are received by the client and 2) it gives an error when attempting to return a complex data type (e.g., a String). The generated Eclipse client spews out errors and doesn’t work at all.
I found very little about this issue online – the only thing I found was related to the services.xml file that could be malformed, but that isn't the case here.
Any ideas? I feel kinda stupid, as axis2 is around for a long time and a lot of people must be using it..
Apache Tomcat 5.5
- Apache Axis2 1.5.3, 1.5.0, 1.1, 1.0 (tried all of them)
- Java SDK 1.6.0
- Eclipse IDE Helios (Build id: 20100617-1415)
- Netbeans IDE 6.8
You may use the build.xml for Axis Stub generation by referring this post. This build script should fairly work for any WSDL with minimal changes, which are straight forward.
If it still doesn't work, can you post your WSDL to see how it is defined?
(OCEEJBD6, SCWCD5, SCDJWS, SCJP1.4 and Oracle SQL 1Z0-051)
William Van Woensel
Joined: Jul 23, 2008
Sorry for the late reply (holidays..). We've tried generating the client code with an ANT build file, but no effect (still same error; no method parameters are received at the service side). As mentioned before, we eventually tried a very simple service + client, you can find the code below (automatically generated via NetBeans, starting from the Java source code):
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com
subject: Apache Axis2: sent method arguments are not received