cancel
Showing results for 
Search instead for 
Did you mean: 

glassfish cannot find sapjcorfc although available

Former Member
0 Kudos

Hello!

On a 32Bit Linux machine, I installed the sapjco-linuxintel-2.1.8.tgz by

- copying the sapjco.jar into glassfish/domains/domain1/lib directory

- copying included libsapjcorfc.so and librfccm.so into glassfish/lib directory

stefan@server:~$ ls -al /usr/share/glassfish/lib/

insgesamt 61140

drwxr-xr-x 15 root root 4096 2008-02-25 15:30 .

drwxr-xr-x 12 root root 4096 2008-02-13 18:33 ..

... some other files ...

-rwxr-xr-x 1 root root 5046073 2007-01-08 21:40 librfccm.so

-rwxr-xr-x 1 root root 3827533 2007-01-08 21:40 libsapjcorfc.so

... some other files ...

stefan@server:~$

When I now access a Bean that wants to make a call via JCo, my server logs give a lot of Exception, with the following being the main trouble:

at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

Caused by: java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'

JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [/usr/share/glassfish/lib/libsapjcorfc.so: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory]. java.library.path [/usr/share/glassfish/lib:/usr/share/glassfish/lib:/usr/share/glassfish/lib]

at com.sap.mw.jco.JCO.<clinit>(JCO.java:776)

In other words, it cannot find the libraries, although they are available.

I tried a number of different things:

- the libsapjcorfc.so in the directory only

- providing a dynamic link called sapjcorfc.so to libsapjcorfc.so

- let sapjcorfc.so be a copy of libsapjcorfc.so

nothing helped.

I'm using the latest Ubuntu version incl. all updates.

Can anybody help me please?

Regards,

Stefan

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member187444
Participant
0 Kudos

You should copy sapjco.jar and dll files (sapjcorfc.so) into glassfish bin files.

Former Member
0 Kudos

Hello Eray!

Thanks for your reply.

I tried that, but now I get

Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.sap.mw.jco.JCO

Therefore I tried to set the CLASSPATH

- in MANIFEST.MF

- when deploying the Bean in Glassfish (there is an option that allows you to do so)

... both without any success / change (see the Exception above).

it does now look like the following:

glassfish/

bin/sapjco.jar

bin/libsapjcorfc.so

bin/librfccm.so

domains/domain1/lib/sapjco.jar

..but is not working.

I also tried:

glassfish/

bin/sapjco.jar (links to ..domains/domain1/lib/sapjco.jar)

bin/libsapjcorfc.so

bin/librfccm.so

domains/domain1/lib/sapjco.jar

and

glassfish/

bin/libsapjcorfc.so

bin/librfccm.so

domains/domain1/lib/sapjco.jar

... but that didn't work either.

...everytime with the classpath set to /usr/share/glassfish/bin/sapjco.jar or /usr/share/glassfish/domains/domain1/lib/sapjco.jar respectively.

Using Windows, the following setup works:

glassfish\

lib\sapjcorfc.dll

lib\librfc32.dll

domains/domain1/lib/sapjco.jar

Do you have any other idea?

Thank you lots.

Regards,

Stefan