JNI call works in a standalone java application. It does no when we invoke a JNI Call from a servlet
1 posts in topic
Flat View  Flat View
TOPIC ACTIONS:
 

Posted By:   Palani_Nathan
Posted On:   Wednesday, May 9, 2001 06:40 AM

I am trying to use of C-api in our java application [OS-SunSolaris 5.6, JDK1.3]. In a java application JNI call works fine. I have placed the class in a package and invoke the JNI in a Servlet, I received the following error. 500 Internal Server Error /demo/test2: javax.servlet.ServletException: displayAMS java.lang.UnsatisfiedLinkError: displayAMS at com.csi.Postal1.AMS.AMSTesting.displayAMS(Native Method) at test2.service(test2.java:32) at javax.servlet.http.HttpServlet.service(HttpServlet.java:865) at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1013) at allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java:925) at    More>>

I am trying to use of C-api in our java
application [OS-SunSolaris 5.6, JDK1.3].

In a java application JNI call works fine.

I have placed the class in a package and
invoke the JNI in a Servlet, I received
the following error.

			
500 Internal Server Error
/demo/test2:

javax.servlet.ServletException: displayAMS
java.lang.UnsatisfiedLinkError: displayAMS
at com.csi.Postal1.AMS.AMSTesting.displayAMS(Native Method)
at test2.service(test2.java:32)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1013)
at allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java:925)
at allaire.jrun.servlet.JRunRequestDispatcher.forward(JRunRequestDispatcher.java:88)
at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1131)
at allaire.jrun.servlet.JvmContext.dispatch(JvmContext.java:330)
at allaire.jrun.http.WebEndpoint.run(WebEndpoint.java:107)
at allaire.jrun.ThreadPool.run(ThreadPool.java:272)
at allaire.jrun.WorkerThread.run(WorkerThread.java:75)
==================================================================


I am able to overcome the above error.
made code change in the 'Native function' to include packagename
(eg: Java_com_csi_Postal1_AMS_AMSTesting_displayAMS).

I am still having problem with the c-function call within the native fuction 'displayAMS'. I examined the logfile on the application server (default_out.log). That indicated it is succesful to call the 'native function' and the servlet fail at the point where it make a c-api call.

The application server shuts down and
I received the following following error message.
			
==========================================================================

ERROR
The requested URL could not be retrieved

--------------------------------------------------------------------------------

While trying to retrieve the URL: http://arlnvaux002.usps.gov:8100/demo/test2

The following error was encountered:

Connection Failed
The system returned:

(146) Connection refused
The remote host or network may be down. Please try the request again.

Your cache administrator is webmaster.



--------------------------------------------------------------------------------
Generated Tue, 08 May 2001 21:33:09 GMT by gnjpvpzz001.usps.gov (Squid/2.3.STABLE4)


Anyhelp on this will be highly apprciated. Thanks in advance.


Palani    <<Less

Re: JNI call works in a standalone java application. It does no when we invoke a JNI Call from a servlet

Posted By:   Alexander_Krapf  
Posted On:   Thursday, May 10, 2001 07:45 AM

Hi Palani,


This could be due to a native library path misconfiguration. Where is your native library located and have you done anything to tell your servlet runner to look for the library in this place?


Is your LD_LIBRARY_PATH configured correctly?


Good luck,


Alex

About | Sitemap | Contact