Hi Tim, I have not solved the problem, but managed to understand that the problem is not where I drop the classes that will make the JNI calls. Dropping them inthe share directory results in the java.lang.reflect.InvocationTargetException at the Client side.
1) To be clear, the call to th e JNI wrapper (dropped in the share/classes directoy) is something like this: public void getCompany(CompanyHolder company, StringHolder result) {...} Making this call from the Stub implementation (dropped in axis/WEB-INF/classes directory) result in the mentioned exception. The clases ComapnyHolder is visible to both classes, and tthey are in axis/WEB-INF/classes and axis/WEB-INF/classes. 2) For the sake of testing, I created a new method without parameters public Stirng getCompany(); and made the call just like in 1, and IT WORKED ... no Exception at the client side. 3) So, the problem seems to me is not wher eI drop the implementation classes, but the classes with all the types and hodlers generated with wsdl2Java, and it doesn't seem to be the shared/classes directory, because that classloader finds it correctly. It seems that there is another classloader in the middle, between the one for shared and the one for my WebApp that needs to know where to get these classes from, but where? ... I tried common and server.... no luck !!! Or is there anywhere else or something else I have not looked into? Thanks in advance, --Luis R. On 7/17/06, Tim Lucia <[EMAIL PROTECTED]> wrote:
Please post a full stack trace. TargetInvocationException should have an underlying cause associated with it, like NullPointerException or ClassNotFoundException. Tim > -----Original Message----- > From: Luis Rivera [mailto:[EMAIL PROTECTED] > Sent: Monday, July 17, 2006 8:57 PM > To: users@tomcat.apache.org > Subject: Tomcat 5.5/Axis 1.4 java.lang.reflect.InvocationTargetException > > Hi Tomcat users, > > I have a web service which will JNI to access the application, which > according to the documentation should be placed in the shared/classes > directory. I did so and I got a dreaded > java.lang.reflect.InvocationTargetException, which I believe is a class > loader problem. However, I have tried to solve this placing it in the > common/classes, server/classes and I get the same result. > > I have searched the web for solutions, some people say that it is a > classpath problem, but nobody seems to let you know where exactly you set > this so that the correct class loader finds the class (assuming I am right > and it is a classloader problem). > > Anyone here can help me? If have had a similar setup/problem and have a > solution at hand? > > Thanks in advance, > --Luis R.