Dear all,
I have already talked with Tom during the very nice ICAT Workshop at STFC about this
problem, but I still cannot find what's wrong with my installation. (Initially i forgot to add
users in passwd table, but after adding some the error did not change.)
Sorry for the longish mail, but hopefully all the details below will help to spot the problem.
Please note, the host icat4a is not visible from outside the Elettra network.
0)
Host:
CentOS release 6.2
2.6.32-220.4.1.el6.x86_64
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)
ojdbc6.jar (copied in glassfish/domains/domain1/lib/.)
oracle-xe-11.2.0-1.0.x86_64
glassfish-3.1.2.2-unix
All the installation has been done from scratch (oracle-xe, glassfish...)
1)
I have deployed ICAT in Glassfish with db plugin:
[glassfish3@icat4a icat.ear.config]$ asadmin list-applications
authn_db.ear-1.0.0 <ear, ejb>
icat.ear-4.2.1 <ear, ejb, webservices>
2)
ICAT is configured to use db auth.
[glassfish3@icat4a ~]$ cat glassfish3/glassfish/domains/domain1/config/icat.properties
# Real comments in this file are marked with '#' whereas commented out lines
# are marked with '!'
# The lifetime of a session
lifetimeMinutes 120
# Provide CRUD access to authz tables
rootUserNames root icat icatuser
# Desired authentication plugin mnemonics
authn.list db
!authn.list ldap
# JNDI for each plugin
authn.db.jndi java:global/authn_db.ear-1.0.0/authn_db.ejb-1.0.0/DB_Authenticator
#from glassfish server.log: java:global/authn_db.ear-1.0.0/authn_db.ejb-1.0.0/DB_Authenticator, java:global/authn_db.ear-1.0.0/authn_db.ejb-1.0.0/DB_Authenticator!org.icatproject.authentication.Authenticator
!authn.ldap.jndi java:global/authn_ldap.ear-1.0.0/authn_ldap.ejb-1.0.0/LDAP_Authenticator
authn_db.properties is in the same directory but everything is commented out.
3)
I have added users in PASSWD table using the sqlplus:
sqlplus icat/myicatpasswd@localhost
SQL> select * from passwd;
USERNAME
--------------------------------------------------------------------------------
ENCODEDPASSWORD
--------------------------------------------------------------------------------
bob
bobspasswd
4)
Glassfish is up and running, I can see the icat wsdl at the following address:
https://icat4a.esce.elettra.trieste.it:8181/ICATService/ICAT?wsdl
But when I run the test.py I always get the following error: (I have added some additional printouts for debugging.)
The error happens in the follwing line: sessionId = service.login(plugin, credentials)
(Or as it was originally invoked: sessionId = service.login(plugin, credentials,) )
[glassfish3@icat4a icat.ear.config]$ ./test.py
icat4a.esce.elettra.trieste.it 8181 db username bob password bobspasswd
plugin: db
Service URL:
https://icat4a.esce.elettra.trieste.it:8181/ICATService/ICAT?wsdlentry >> username : bob
credentials.entry.size = 1
entry >> password : bobspasswd
credentials.entry.size = 2
Try to login...
Traceback (most recent call last):
File "./test.py", line 35, in <module>
sessionId = service.login(plugin, credentials)
File "/usr/lib/python2.6/site-packages/suds/client.py", line 542, in __call__
return client.invoke(args, kwargs)
File "/usr/lib/python2.6/site-packages/suds/client.py", line 602, in invoke
result = self.send(soapenv)
File "/usr/lib/python2.6/site-packages/suds/client.py", line 657, in send
result = self.failed(binding, e)
File "/usr/lib/python2.6/site-packages/suds/client.py", line 712, in failed
r, p = binding.get_fault(reply)
File "/usr/lib/python2.6/site-packages/suds/bindings/binding.py", line 265, in get_fault
raise WebFault(p, faultroot)
suds.WebFault: Server raised fault: 'javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB'
Any suggestion is most welcome.
Thanks!
Milan