Try changing the catch around jd.getDate() to catch (Throwable) ..
maybe its throwing something you're not catching.

Sanjiva.

----- Original Message -----
From: "Harald Pollak" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, June 30, 2003 5:06 PM
Subject: Axis / JNI once more


> Hy everybody!
>
> I try to use JNI within a Axis-Service. I try since weeks to bring it to
> work, but my result is every time the same:
>
> <soapenv:Envelope>
>     <soapenv:Body>
>         <soapenv:Fault>
>             <faultcode>soapenv:Server.userException</faultcode>
>
> <faultstring>java.lang.reflect.InvocationTargetException</faultstring>
>             <detail/>
>         </soapenv:Fault>
>     </soapenv:Body>
> </soapenv:Envelope>
>
> my enviroment:
> Linux: SuSE 8.2
> Tomcat 5 ( 5.0.3 Alpha ) ( allso tried with Tomcat 4.1.24 )
> Axis 1.1 ( final ) ( allso tried with 1.1rc2 )
> Client: Mozzila 1.4
>
> Invocation:
> I call the function getDate with 2 Parameters via:
>
>
http://localhost:8080/axis/services/services?method=getDate&in0=10.146.3.42&;
in1=1800
>
> The Code:
> -----------
>
> The Implementation:
>
> public class ServicesSoapBindingImpl implements SMS.JNIWS{
>
>     public java.lang.String getDate(java.lang.String in0, int in1)
> throws java.rmi.RemoteException {
>         String s = new String();
>         System.err.println(LibPath);
>
>         try {
>             System.err.println("init Class");
>
>          JNIDate jd = new JNIDate();
>             System.err.println("call methode: ");
>             s = jd.getDate(in0, in1);
>             System.err.println("finnished: " + s);
>         } catch (Exception ex) {
>             System.err.println(ex.getStackTrace().toString());
>          ex.printStackTrace();
>       }
>
>         return s;
>     }
>
>     public java.lang.String getVersion() throws java.rmi.RemoteException
> {
>         return "1.0";
>     }
>
>     public java.lang.String getEnv() throws java.rmi.RemoteException {
> //        return System.getProperty("java.library.path");
>         return AxisProperties.getProperty("java.library.path");
>     }
>
> }
>
> the Class-JNIDate:
>
> class JNIDate {
>
>     static { System.loadLibrary("JNIDate"); }
>
>     public native String getJNIDate(String Server, int Port );
>
>     public String getDate(String Server, int Port) {
>         String s;
>         try {
>            System.err.println("call");
>            s= getJNIDate(Server,Port);
>             System.err.println(s);
>             return s;
>         } catch (Exception e) {
>           System.err.println("Exeption!!!!");
>               e.printStackTrace();
>             return (String)(e.getMessage() + "\n :
> "+e.getCause().toString());
>         }
>     }
> }
>
>
> the output on Tomcat-console:
>     init class
>     call methode
>     call
>
> there is no  exception in logs or on console
>
>
> when i call the getEnv - Methode:
>     The path with my library-dir is shown.
>
> What i allso tried:
>     To outcommend the Nativecall and return a simpel string from
> JNIDate.getJNIDate -> works fine.
>
>     To write a servlet using the JNIDate.class and call it. -> works
> fine!
>
> So my questions:
>
> 1.) has anybody allready written a Axis-Service using his own JNI-Class?
> 2.) has anybody seen a misstake in the upper code ( maybe i'm
> "codeblinde" - and it's a simple error, so I read over it many times )?
> 3.) Has anyone a sample - I can try in my enviroment?
>
> Thanks
> Harry
>

Reply via email to