Dear Axis/Devs/User,

Is there any sould around here that could have had a similar problem deploying an axix/tomcat application that will use a JNI to access the server application? As you can see, it seems that either nobody knows how to do this, or is so stupid that nobody things I won't be able to figure it out. But so far, I have not had luck or brain to figure it out :(

 Any kind of help will be greatly appreciated,
  -Luis R.

From: "Luis Rivera" <[EMAIL PROTECTED]>
Reply-To: axis-dev@ws.apache.org
To: axis-dev@ws.apache.org
Subject: Re: Where to put Amazon Stub classes
Date: Wed, 19 Jul 2006 14:26:30 -0700


 Roberto, axis-users, axis devs,


Sorry for the cross posting, but we had not had much luck in the users's list, so I am hoping an axis/dev will have a good advise. I am sure more than one user has needed to use axis/tomcat and a JNI interface, so I am sure this has been done.

Roberto, it was a false alarm. The problem is still there. Nice to see you found the solutions to your, but mine is a little more complicated because I need classes in the shared context and classes in the webapps context, which cause serialization/desearialization problems when making calls among classes between the two contexts.

I found the log that has the stdout, which was showing a couple of exceptions, which I solved by placing the appropriate jar files in the right place. However, the problem didn't go away, there is something in the Tomcat servlet or axis (I don't know) that is handling an exception in the server side, because I have a try {} catch () {} where the problem ocurrs and I don't catch anything, but the exception is returned to the client. Now not even an exception is thrown to the stdout or staderr files.

The problems comes when in the shared/classes files I access the parameters that use the classes generated by the WSDL2java tool. Those classes are in both

TOMCAT_HOME/shared/classes

and

TOMCAT_HOME/webapps/axis/WEB-INF/classes

I also dropped the axis jar files in

TOMCAT_HOME/shared/lib
TOMCAT_HOME/webapp/WEB-INF/lib
TOMCAT_HOME/webapp/axis/WEB-INF/lib

but I still have a problem. At this point it would be nice to at leasts see the DEBUG output from Tomcat, but I am not sure how to do that or if it is something related to axis. To make this more explicit, this example works:

class CRLStub

...

public void getCompay(CompanyHolder company, StringHolder result)
throws java.rmi.RemoteException
{
   company.value = new soap.xsd.CompanyInfo();
   company.value.setCompany("Something");

   result.value = "ok";
}

Now, if I try to do the following, there is no error, but obviously, the result is not the same

class CRLStub

...

public void getCompay(CompanyInfoHolder company, StringHolder result)
throws java.rmi.RemoteException
{
   jnInSharedContext.getCompany(company, result);
}

class JNIcrlInSharedContext

 ...

public void getCompany(CompanyInfoHolder company, StringHolder result)
{
  /// No problem as long as I don't access neither company or result
}

But if I do this, then I receive the java.lang.reflect.InvocationTargetException at the client side, even if I try to catch the exception with a try {} catch () {} pair.

public void getCompany(CompanyInfoHolder company, StringHolder result)
{
   company.value = new soap.xsd.CompanyInfo();
}

As long as I do not referece the classes, which I believe means the classes are not loaded, then there is not problem. When they are accessed, then it fails. The classes are in both common, shared and webapps, where else I am supposed to place them?

I would appreciate any kind of hint,
Thanks in advance,
--Luis R.


From: Roberto Belardo <[EMAIL PROTECTED]>
Reply-To: axis-user@ws.apache.org
To: axis-user@ws.apache.org
Subject: Re: Where to put Amazon Stub classes
Date: Wed, 19 Jul 2006 10:26:23 +0200

Hi Luis,
this is a beautiful morning. I don't know how but i solve everything. This morning the first thing i did was another experiment to better understand what was happening. So i rebuild Amazon stub classes with the axis tool: java org.apache.axis.wsdl.WSDL2Java -v -W -p myamazonservice http://webservices.amazon.com/AWSECommerceService/2006-06-07/AWSECommerceService.wsdl Then i put a System.out.println("TEST") inside the code of AWSECommerceServiceLocator.java constructor to see if Axis reach that point. I never saw that string printed out, but after the deploy of everything, and after including those stub classes in the same jar of my web service putted in TOMCAT/webapps/AXIS/WEB-INF/lib directory, everything works fine!
I really don't know how but i escape from this labyrinth!
I hope you find your way out from yours.
Thanks to all,
Roberto.

Ps: If anyone understand what's happened to me (why now everything works, he can tell me whenever he wants)

Roberto Belardo ha scritto:
How do you find that the problem is that? I really don't know how to advance from this InvocationTargetException...

Luis Rivera ha scritto:


Roberto,

I found my problem. It turned out not to be a Classloader problem, but a NullPointer problem in the server, which I had not found because I don't know how to debug my application in Tomcat and there is no single log in the Tomcat directory that can give me a clue of what's happening.

Anyway, the configuration worked as I had it initially:

1) Stubs/Skeletons and all that had nothing to do with the JNI in axis/WEB-INF/classes

2) The classes for the JNI interface/loading the jni library under shared/classes

I think if we can find a way to debug our application in the server, we could get better light on what is happening and solve problems a lot quicker :|.

Anybody knows how to debug remotely axis/tomcat apps?

--Luis R.

From: "Luis Rivera" <[EMAIL PROTECTED]>
Reply-To: axis-user@ws.apache.org
To: axis-user@ws.apache.org
Subject: Re: Where to put Amazon Stub classes
Date: Tue, 18 Jul 2006 04:18:43 -0700


Roberto,

I have not solved the problem, but managed to understand that the problem does 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 ... not 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 !!!

HELP PLEASE !!!
Thanks in advance,
--Luis R.

From: Roberto Belardo <[EMAIL PROTECTED]>
Reply-To: axis-user@ws.apache.org
To: axis-user@ws.apache.org
Subject: Re: Where to put Amazon Stub classes
Date: Tue, 18 Jul 2006 10:36:40 +0200

Those are all the experiments i did to solve this damned problem:

* Put the Amazon stub classes in a jar in the classpath of windows:
The source code of the web service will compile, and you will be
able to correctly deploy it. But when you will try to acces it
from a client, the first try to call AWSserviceLocator( ) will
cause the exception.
* Put the Amazon stub classes in a jar in the
TOMCAT/webapps/AXIS/WEB-INF/lib directory: Axis will not start.
You will get a 404 error, and i don't know why.
* Put the Amazon stub classes in the
TOMCAT/webapps/AXIS/WEB-INF/classes directory: Nothing change from
the first point.
* Put the Amazon stub classes in the TOMCAT/shared/lib directory: :
Nothing change from the first point.
* Put the Amazon stub classes in the same jar of the web service i
try to deploy and use: I put this jar containing Amazon stub
package, my ws sources, my ws stub classes in
TOMCAT/webapps/AXIS/WEB-INF/lib directory. I can deploy it but
nothing change from the first point.

I really finish my ideas to solve this problem. Is it possible that no one had never try to use Amazon in Axis? I wrote on Amazon forum, Nabble Axis forum, Java forum but with no succes.
I hope we find the solution :-(
Roberto.

Luis Rivera ha scritto:

Roberto,

I don't know the answer, but I am having the same problem. Same exception but with a slightly different setup. I have a class which will use a JNI library, which according to the documentation should be place in the shared/classes directory. So I did and I get the 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).

Any of these AXIS gurus have had a similar setup/problem and have a solution at hand?

Thanks in advance,
--Luis R.


From: Roberto Belardo <[EMAIL PROTECTED]>
Reply-To: axis-user@ws.apache.org
To: axis-user@ws.apache.org
Subject: Re: Where to put Amazon Stub classes
Date: Mon, 17 Jul 2006 14:58:15 +0200

But if i put those stub files in a jar under the WEB-INF/lib Axis cannot start. My question begin: Can i invoke a web service on axis that will invoke with some stubs the service of amazon? If yes, why i'm still getting this exception?

Martin Gainty ha scritto:
Buon Giorno Roberto-

place jars in %TOMCAT_HOME%/webapps/axis/WEB-INF/lib

OR

place class files in %TOMCAT_HOME%/webapps/axis/WEB-INF/classes

Molte Grazie,
Martin --
*********************************************************************

This email message and any files transmitted with it contain confidential information intended only for the person(s) to whom this email message is addressed. If you have received this email message in error, please notify the sender immediately by telephone or email and destroy the original
message without making a copy. Thank you.



----- Original Message ----- From: "Roberto Belardo" <[EMAIL PROTECTED]>
To: <axis-user@ws.apache.org>
Sent: Monday, July 17, 2006 6:07 AM
Subject: Where to put Amazon Stub classes



Hi all,
i have big problem. I'm trying to develop a web service that will do simply a search using amazon ws, and i want acces my service from a java client. So i put my web service jar in AXIS-HOME/WEB-INF/lib directory. But here come
the problems:
Where i have to put Amazon stub classes obtained from the amazon wsdl file? In order to compile my java files for my web service, i create a jar with those stub files and putted it in the windows classpath. But it seems to me that Axis cannot see them because every time i try to acces the web service i got a java.lang.reflect.InvocationTargetException from Axis but i can use ut if i simply remove the amazon code. If i put that jar with the amazon stub in the AXIS-HOME/WEB-INF/lib directory Axis cannot start.I get an error
404.
Thanks in advance,
Roberto --
View this message in context: http://www.nabble.com/Where-to-put-Amazon-Stub-classes-tf1953881.html#a5358366


Sent from the Axis - User forum at Nabble.com.


--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f

Sponsor:
Refill s.r.l. - Tutto per la tua stampante a prezzi incredibili: su cartucce, toner, inchiostri, carta speciale risparmi fino al 90%!
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=5189&d=19-7

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


_________________________________________________________________
Don’t just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today - it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to