Access EJB's deployed in WL 61 from Tomcat 4.0.3
Question -
Can anyone point me at documentation that will help me understand what jar files
are required to allow access EJB's that are deployed in Weblogic 6.1 from a Servlet
that is running under Tomcat.
I am currently getting the following exception:
javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory.
Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1394)
Thanks,
Gary Bartlett
I got the same problem.
Some posts here suggest you should put weblogic.jar under /common/lib,
I tried it but it didn't work. I also tried to put it under
webapps/yourweb/web-inf/lib
but it didn't work too. At last I had to unpack the weblogic.jar and put
them under
webapps/yourweb/web-inf/classes. This at least solved the problem you
mentioned.
I got other problem like ClassCastException that might be due to my own
code.
Anyway you can try the above approach. And please post your results here
just let
others know.
Thanks.
"Gary Bartlett" <[email protected]> wrote in message
news:3ce3fdf1$[email protected]..
>
Question -
Can anyone point me at documentation that will help me understand what jarfiles
are required to allow access EJB's that are deployed in Weblogic 6.1 froma Servlet
that is running under Tomcat.
I am currently getting the following exception:
javax.naming.NoInitialContextException: Cannot instantiate class:weblogic.jndi.WLInitialContextFactory.
>
>
>
Root exception is java.lang.ClassNotFoundException:weblogic.jndi.WLInitialContextFactory
atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1394)
>
>
Thanks,
Gary Bartlett
Similar Messages
-
Accessing JMS UDD deployed on OSB cluster from a composite JMS adapter deployed on soa cluster
Our environment setup
Single domain with three clusters
osb_cluster.soa_cluster and bam_cluster
osb_cluster: osb_server1 and osb_server2
wlsbJMSServer_auto_1: targetted to osb_server1
wlsbJMSServer_auto_2: targetted to osb_server2
osb_subdeployment1:targetted to wlsbJMSServer_auto_1 and wlsbJMSServer_auto_2 JMS servers
osb_subdeployment1 has JMS UDD queue jms/wlsb/queue
soa_cluster: soa_server1 and soa_server2
There is a BPEL composite deployed to soa_cluster. It has JMS adapter trying to read messages from jms/wlsb/queue
JCA JMSAdapter is deployed to osb,soa clusters and Admin server
ConnectionFactory is targetted to soa and osb clusters (osb_cluster and soa_cluster)
We have bounced soa and osb servers(not admin) after jms changes.
soa log says
JMSAdapter Composite1l JmsDDEndpoint_onFailure: Unable to resolve 'jms.wlsb.queue. Resolved 'jms'
Can we access JMS destinations deployed on one cluster from different cluster?
If yes, how can we do that ? do we need to modify BPEL JCA file to indicate destination is on another cluster?
Thanks,
PraveenAnybody has faced similar issue?
-
Hi all,
I'm a newbie (of java EE and Sun forum).
I have a problem.
I followed this tutorial: http://technology.amis.nl/blog/1368/connecting-to-an-ejb-30-remote-sessionbean-from-tomcat
using Netbeans 6.8, Tomcat 6.0.20, Glassfish v3.
The deploy of EJB on Glassfish is OK.
The deploy of WebApp on Tomcat is OK.
But when I access to the servlet using the browser I receive this exception.
javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at web.MyServlet.processRequest(MyServlet.java:51)
at web.MyServlet.doGet(MyServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
I know that I must copy *.jar files in Tomcat dir and App libraries (https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#Step_3._Include_appserv-rt.jar_and), but it doesn't work.
What are my mistakes?
Thank you for your help.
Servlet code:
package web;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import testbean.MySessionBeanRemote;
* @author Stefano
public class MyServlet extends HttpServlet {
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
try {
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet MyServlet</title>");
out.println("</head>");
out.println("<body>");
out.println(MySessionBeanRemote.class.getName());
try {
InitialContext ic = new InitialContext(props);
MySessionBeanRemote mySessionRemote = (MySessionBeanRemote) ic.lookup("pippo");
out.println(mySessionRemote.getOK());
} catch (NamingException ex) {
ex.printStackTrace();
out.println("</body>");
out.println("</html>");
} finally {
out.close();Yes, I did.
I'm not sure about the right actions to do.
For example: the Glassfish FAQ told me to add gf-client*.jar to the Tomcat folder, not appserv-rt.jar , with v3.
I tried with both files. I restarted Tomcat, but nothing work :-( -
Running netscape servlet access a weblogic deployed bean
I an having problems creating the initialcontext object when tring to access a
bean deployed in
Weblogic6.0 from a servlet running in netscape Iplanet server. Has anyone every
got this to work?
Is this a valid configuration or does the servlet have to be running in the weblogic
server.
Thanks DougI an having problems creating the initialcontext object when tring to access a
bean deployed in
Weblogic6.0 from a servlet running in netscape Iplanet server. Has anyone every
got this to work?
Is this a valid configuration or does the servlet have to be running in the weblogic
server.
Thanks Doug -
How to access EJB deployed in JBOSS 4 from Creator
Hello.
I am trying to access EJBs deployed on JBOSS in order to develop a web app client, when I import the EJB set from Creator (sessions and entities packages in a jar file) I got the following error message....."No EJB set found in file....." .
I presume there is an kind of xml file description specific for Sun App Server missing. I would like to know if there is other way to expose EJB in creator?....maybe write a config file by hand.
I already read the tutorials related to EJB but those only use pre build EJB jars for Sun App Sserver.
Also I read all the posted about JBoos and EJB in this forum but those are pretty general.
By the way I have Delegate classes to access the EJB. How do I register my delegates in Creator in order to expose their methods?
I�ll really appreciate some light in this matter.
Thanks in advance!!!Hi,
The below forum thread may help you :
http://swforum.sun.com/jive/thread.jspa?forumID=123&threadID=51321
Thanks,
Runa. -
Can't access EJB deployed on remote OC4J - what am I doing wrong?
I'm unable to access an EJB deployed on a remote OC4J instance (ie, part of a 9iAS installation on another machine vs local in JDeveloper).
I've reverted to a stupid-simple EJB in hopes of getting it going prior to trying my actual code. The EJB works fine in JDev (9.0.3) - I 'run' the EJB to start the local OC4J instance, run my client code (generated via the "New Sample Java Client..." option in the Navigator context popup) and all is well.
I then create an EAR file via the the "Create EJB Jar Deployment Profile..." context popup of the ejb-jar.xml node, followed by "Deploy to EAR file" from the context popup of the resulting ejb1.deploy node. I next "Deploy EAR File" via the "Oracle Enterprise Manager" that comes with 9iAS (the :1810 port). After successfully deploying, I modify my client code in JDeveloper, specifying the new connection information for the remote machine via the Hashtable constructor of InitialContext and attempt to run it. I've tried a number of Context.PROVIDER_URL forms, including: ormi://registered_pingable_host_name:23791/deployed_application_name
ormi://registered_pingable_host_name:23791/session_deployment_name (from the <enterprise-beans><session-deployment name="xxx"/></enterprise-beans> section of my orion-ejb-jar.xml file, as per a tip in this forum)
I've tried prefixing ormi:// with http:, but get no response whatesoever in this case.
I've also tried it without the port number (this port number matches that in my remote OC4J's <oc4j_instance_home>/config/rmi.xml file).
On the Context.SECURITY_PRINCIPAL and Context.SECURITY_CREDENTIALS settings, I've tried various values, generally using the 'admin' user, with passwords taken from:
<oc4j_instance_home>/principals.xml
<oc4j_instance_home>/application-deployments/application_name/principals.xml
I've also tried matching the password in the jazn-data.xml, to no avail - this password appears encrypted anyway, but thought I'd give it a try on the off-chance that it was just a randomly-generated password - no go.
I've also tried SCOTT/TIGER, anonymous, etc. Incidentally, the 'deactivated' attribute of the <user> tag is set to "false" in my principals.xml files.
No matter what I do, I always get back "javax.naming.NamingException: Lookup error: java.net.ConnectException: Connection refused: connect"
Additionally, I get this same message when I try to establish an Application Server Connection via JDev.
Clearly, I'm missing something critical (and probably simple), but I can't for the life of me figure it out.
Any help would be much appreciated!
Thanks,
Jim StollOk, well this is a bit strange...
3103 - 3103 also fails, and some experimentation has led me to find that any time that I specify a range smaller than 6 (3101 - 3106 works, 3101 - 3105, 3101-3101, 3103-3103, etc does not), the OC4J instance will not restart. I get "An error occurred while starting. The opmn request has failed. From opmn: HTTP/1.1 204 No Content Content-Length: 0 Content-Type: text/html Response: 0 of 1 processes started. Check opmn log files such as ipm.log and ons.log for detailed." in the OEM window (I specify the RMI port range, hit Apply, go to the OC4J instance home page, see that the Status is 'Down', hit Start, and get that message.) <ORACLE_HOME>/product/iasinfra/opmn/logs/ipm.log tells me:
02/12/03 09:41:12 There is no rmi port left for starting an OC4J process. Please check oc4j's port property in OPMN's configuration file.
02/12/03 09:41:12 start_proc: UID 3719788: failed to build args
02/12/03 09:41:12 start_proc_req: failed to start a process in GID OC4JJim2, type: 2
If I bump it up to 3101 - 3106 or higher, it starts right up. Running opmnadmin debug, as suggested by Venky (thanks Venky!), yields:
PROCESS TABLE
UID PID FLAGS TYPE STATUS REF HTTP AJP RMI JMS
3654011 84 00000040 OC4J Alive 1 0 3005 3106 3206
424987 604 00000000 Apache Alive 1 7777 0 0 0
2932088 14849 00000000 OC4J Alive 1 0 3003 3103 3203
3063160 14878 00000000 OC4J Alive 1 0 3001 3101 3201
3194232 14906 00000000 OC4J Alive 1 0 3000 3105 3205
3325304 14936 00000000 OC4J Alive 1 0 3002 3102 3202
3456376 14964 00000000 OC4J Alive 1 0 3004 3104 3204
Which is what I would expect, given the specified range of 3101-3106. Trying each of these ports in turn, I've found that I can hit the EJB successfully on 3106, but 3101 - 3105 all fail with:
javax.naming.NamingException: Lookup error: javax.naming.AuthenticationException: No such domain/application: Project7_2; nested exception is:
javax.naming.AuthenticationException: No such domain/application: Project7_2
java.lang.Object com.evermind.server.rmi.RMIContext.lookup(java.lang.String)
RMIContext.java:134
java.lang.Object javax.naming.InitialContext.lookup(java.lang.String)
InitialContext.java:350
void Samplemypackage9.MySessionEJBClient1.main(java.lang.String[])
MySessionEJBClient1.java:15
I'm a little concerned about assuming the high-end of the range to be the active port on a regular basis (though thus far, among about 20 - 30 tries spaced over 20 - 30 minutes, it has been...) - I guess I can have my code loop through the range until it finds a good port or exhausts the list, but that seems a bit excessive.
Can you think of a reason that my OC4J instance won't start with a range size of less than 6? I'm on 9iAS 9.0.2, if that makes any difference.
Thanks,
Jim -
Issues in looking up a ejb deployed on glassfish from tomcat.
Hi all,
I have followed the steps mentioned in the EJB FAQ in the glassfish site and was able to lookup a remote ejb deployed in glassfish from a standalone client.
In case of standalone client, i set the appropriate jndi properties in the initial context as mentioned in the FAQ and added the 4 jars specified to the classpath of the application.
It all worked perfectly well.
But I attempted to do the same from a servlet running under tomcat.
I set the appropriate jndi properties in the intial context and added 4 jars specified in the lib directory of the war file.
But this did not turn out well and tomcat complained me with some servlet init errors.
Then i searched through the web and found this posting from you:
http://www.archivesat.com/GlassFish_Enterprise_JavaBeans_Developers/thread1399339.htm
Then i created a folder called "shared/lib" under TOMCAT_HOME directory in my machine and ran the same example. Wow.....miraculously the application ran well.
But i found that the "index.jsp" which i configured in the welcome file list does not appear now. But i was able to access the servlet without any problem. And the servlet was able to successfully lookup the ejb deployed in glassfish.
Then i thought, let me try to access the ejb from a jsf application.
Then i created a jsf application in netbeans 5.5.1 and tried to access the bean deployed in glassfish.
(Note: the jsf application runs in tomcat 5.5.17 which is bundled with netbeans)
OOPSS....
Tomcat now complains me that it cannot compile the jsp page..
This is the error i got...
org.apache.jasper.JasperException: Unable to compile class for JSP
Generated servlet error:
C:\Documents and Settings\james\.netbeans\5.5.1\apache-tomcat-5.5.17_base\work\Catalina\localhost\CityExplorer-WebClient1\org\apache\jsp\index_jsp.java:7: org.apache.jsp.index_jsp is not abstract and does not override abstract method getDependants() in org.apache.jasper.runtime.JspSourceDependent
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
^
Generated servlet error:
C:\Documents and Settings\james\.netbeans\5.5.1\apache-tomcat-5.5.17_base\work\Catalina\localhost\CityExplorer-WebClient1\org\apache\jsp\index_jsp.java:12: getDependants() in org.apache.jsp.index_jsp cannot implement getDependants() in org.apache.jasper.runtime.JspSourceDependent; attempting to use incompatible return type
found : java.lang.Object
required: java.util.List
public Object getDependants() {
^
2 errors
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
Any ideas...
Can you please help me.
I've noticed that you were eagerly answering questions related to ejb lookup in many places.
I feel there is some potential compatability issue between tomcat and glassfish...
I request you to investigate on this and clarify the community with your response.
Thanks in advance,
James SelvakumarThank you guys!
I've found the answer myself. -
Issue in accessing EJB from plain java
Hi,
I am new to OAS. I am using OAS 10.1.2.
I want to access EJB which runs inside OAS, through a plain java program which runs from outside the OAS environment (standalone java program).
I am confused on what to use. RMIInitialContextFactory or ApplicationClientInitialContextFactory for the context in the java program.
what should be the provide URL ?
java.naming.provider.url","ormi://hostname:18140/
is it "ormi" or something else? what is the port number should i use. there are many ports in this OAS. i see that in the console("Ports") link.
also let me know what should i mention in the EJB xml descriptor.
Is this lookup to be done by retrieving from jndi?
pls help.
Thanks,
Sukumar
with this confusion i developed an EJB with the following details
ejb-jar.xml
<ejb-ref>
<ejb-ref-name>ejb/testDetails</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.xxx.xxx.testDetailsHome</home>
<remote>com.xxx.xxx.testDetails</remote>
</ejb-ref>
orion-ejb-jar.xml
<entity-deployment name="ejb/testDetails" location="ejb/testDetails"
Client Java program
public class testDetailsClient
public static void main(String [] args)
testDetailsClient testDetailsClient = new testDetailsClient();
try
Context context =getInitialContext();
testDetailsHome testDetailsHome = (testDetailsHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/testDetails"), testDetailsHome.class);
testDetails testDetails;
catch(Throwable ex)
ex.printStackTrace();
private static Context getInitialContext() throws NamingException
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory");
//env.put("java.naming.factory.initial","com.evermind.server.ApplicationClientInitialContextFactory");
env.put("java.naming.provider.url","ormi://host_name:18140/"); //23791 18140
env.put(Context.SECURITY_PRINCIPAL, "ias_admin");
env.put(Context.SECURITY_CREDENTIALS, "abc123");
InitialContext context = new InitialContext(env);
return context;
if i execute this, it says
javax.naming.NameNotFoundException: java:comp/env/ejb/testDetails not found
18140 is Application Server Control RMI port.
if i run the same code with ApplicationClientInitialContextFactory, it throws exception saying
java.lang.InstantiationException: No location specified and no suitable instance of the type 'com.testdetails.testDetails' found for the ejb-ref ejb/testDetails
at com.evermind.server.administration.ApplicationResourceFinder.getEJBHome(ApplicationResourceFinder.java:268)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:124)
at com.evermind.server.rmi.RMICallHandler.run(RMICallHandler.java:48)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
javax.naming.NamingException: Error reading application-client descriptor: No location specified and no suitable instance of the type 'com.testdetails.testDetails' found for the ejb-ref ejb/testDetails
at com.evermind.server.ApplicationClientInitialContextFactory.getInitialContext(ApplicationClientInitialContextFactory.java:161)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.init(InitialContext.java:219)
at javax.naming.InitialContext.<init>(InitialContext.java:195)
at com.testdetails.testDetailsClient.getInitialContext(testDetailsClient.java:89)
at com.testdetails.testDetailsClient.main(testDetailsClient.java:20)
pls helpHi,
you do not have to package your EJB and PAR together! You can deploy them separately and then reference the J2EE Application from your PAR or vice versa to access it.
For instance you can access the EJB from your PAR as described here:
http://help.sap.com/saphelp_nw2004s/helpdata/en/42/9ddf20bb211d72e10000000a1553f6/frameset.htm
Or you can access a Portal application from J2EE like described here:
http://help.sap.com/saphelp_nw2004s/helpdata/en/42/9ddd0cbb211d72e10000000a1553f6/frameset.htm
Even if you package your PAR in to the same EAR with your EJB they will result in two different containers on the J2EE Engine and you will have to reference them as described in the link above to access the functionality of one component from the other.
Best regards,
Stefan Brauneis -
Hi everyone,
I deployed my EJB component in an Oracle 8.1.7 database and I try to access it from a servlet.
If I run my servlet from JDeveloper 3.2 (Web-to-Go), it all works fine. If I run my servlet from JRun 3.01 or from Tomcat 3.2.1, I get the following exception:
javax.naming.NoInitialContextException: Need to specify class name in environmen
t or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at javax.naming.NamingException.<init>(NamingException.java:104)
at javax.naming.NoInitialContextException.<init>(NoInitialContextException.java:58)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:649)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:242)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:279)
at javax.naming.InitialContext.lookup(InitialContext.java:349)
at com.cognicase.framework.base.U0003.AbstractORB.getBean(AbstractORB.java:285)
at com.cognicase.framework.base.U0003.AbstractORB.getBean(Compiled Code)
at com.cognicase.demo.U2007BL.U2007WP_Users.lookupBean(U2007WP_Users.java:60)
at com.cognicase.framework.is.U0103.AbstractBeanWrapper.beforeBeanCall(AbstractBeanWrapper.java:121)
at com.cognicase.demo.U2007BL.U2007WP_Users.valideUser(U2007WP_Users.java:77)
at com.cognicase.demo.U2000WB.U2000MW_WorkSpace.CallEjb(Compiled Code)
at com.cognicase.demo.U2000WB.U2000MW_WorkSpace.doValidateLogin(Compiled Code)
at com.cognicase.demo.U2000WB.U2000MW_WorkSpace.processService(U2000MW_WorkSpace.java:98)
at Demo_0100_01.service(Demo_0100_01.java:128)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Compiled Code)
at org.apache.tomcat.core.ServletWrapper.service(Compiled Code)
at org.apache.tomcat.core.ContextManager.internalService(Compiled Code)
at org.apache.tomcat.core.ContextManager.service(Compiled Code)
at org.apache.tomcat.service.connector.Ajp13ConnectionHandler.processConnection(Compiled Code)
at org.apache.tomcat.service.TcpWorkerThread.runIt(Compiled Code)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(Compiled Code)
at java.lang.Thread.run(Compiled Code)
If I add my servlet classes, aurora_client.jar, mts.jar, vbjapp.jar and vbjorb.jar files to the CLASSPATH, it works fine.
The behavior is the same in JRun and Tomcat.
I don't like this solution since I have to make the CLASSPATH point to my application classes at the web server level instead of at the application context level.
Has anyone been able to solve this problem?
Thanks for your help.
nullYes, I did. Actually, if I run my servlet in JDeveloper (Web-to-Go), it all works fine. I also extracted the code that calls the EJB from the servlet and I tested it in a small Java application, and it also works fine.
Things stop to work when I deploy my servlet in JRun or in Tomcat.
It appears that my code is correct, but the environment I try to run it is not, and I can't figure out what's wrong.
Can anyone help me?
<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Sandeep Desai ([email protected]):
Have you provided the environmental settings in the servlet.
It should be :
import oracle.aurora.jndi.sess_iiop.ServiceCtx;
env.put(Context.URL_PKG_PREFIXES, "oracle.aurora.jndi");
env.put(Context.SECURITY_PRINCIPAL, username);
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.SECURITY_AUTHENTICATION, ServiceCtx.NON_SSL_LOGIN);
InitialContext ctx = new InitialContext(env);
Object obj = ctx.lookup("test/EJBHome");
HomeObject home = PortableRemoteObject.narrow(
obj,"HomeObject.class");
RemoteObject remote = home.create();
This should make it work!!
<HR></BLOCKQUOTE>
null -
Access EJB's in JServer from MS COM clients
We need to access our EJB's from MS COM Clients (written in C++ currently using OCI)
Any suggestions ?
Thanks in Advance
nullI got the same problem.
Some posts here suggest you should put weblogic.jar under /common/lib,
I tried it but it didn't work. I also tried to put it under
webapps/yourweb/web-inf/lib
but it didn't work too. At last I had to unpack the weblogic.jar and put
them under
webapps/yourweb/web-inf/classes. This at least solved the problem you
mentioned.
I got other problem like ClassCastException that might be due to my own
code.
Anyway you can try the above approach. And please post your results here
just let
others know.
Thanks.
"Gary Bartlett" <[email protected]> wrote in message
news:3ce3fdf1$[email protected]..
>
Question -
Can anyone point me at documentation that will help me understand what jarfiles
are required to allow access EJB's that are deployed in Weblogic 6.1 froma Servlet
that is running under Tomcat.
I am currently getting the following exception:
javax.naming.NoInitialContextException: Cannot instantiate class:weblogic.jndi.WLInitialContextFactory.
>
>
>
Root exception is java.lang.ClassNotFoundException:weblogic.jndi.WLInitialContextFactory
atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1394)
>
>
Thanks,
Gary Bartlett -
Security exception while trying to access EJB from stand alone client
Hi!, I am trying a sample EJB application to R&D some security related issues. I want to access EJB through a web application as well as a stand-alone client. I have set approriate <method-permission> in EJB deployment descriptor. I am using users.properties/roles.properties file for authentication mechanism. I am using JBoss 3.2.
- On the web application side I am using BASIC authentication and the servlet is able to access the EJB OK, as long as I am using a login/password that has access to the EJB.
- Now I am trying to access the EJB using a stand alone Java class. These are the things I have tried till now:
=>Created a InitialContext with appropriate principal, credentials and tried getting a reference to EJB home interface. That resulted in security exception.
=>Logged into a LoginContext by using appropriate JBossSX classes and then tried getting a EJB home interface. Again security exception.
Now I am not sure what to do. I read at some places about client side container but not sure what that is. Does anyone has any ideas to try? Is there any other way I can make a swing application and a web application authenticate to EJB container?
Also can anyone point me to any documentation that gives some idea about how the security credentials gets propagated from web application/standalone client to EJB container?It would be better if you can post your code...and DD that way we can help you better
-
Accessing EJB components from a Remote Client
Hi,
When an web component (Servlet/JSP/Java appl.) need to invoke an business method from an EJB, it first lookup for the registered name from the Application server and obtain the remote reference i.e. the EJB Remote interface. To do this, the client must have got the client-jar file containing the stub. Now, if in a distributed environment, my client is in a different machine and need to access the J2EE server across network, what would be the scenereo.
Is it so, for every EJB the client need to call, it must have got the client-jar file in it's local classpath ? this seems to be not at all feasible.
Is it so, the client loads the Stub acroos the network while obtaining the remote reference ?
Please inform me, what actually happens when a client invokes a EJB call deployed in any application server, across the network !!!
Regards,
Kaustuv BhattacharyaGreetings,
Hi,
When an web component (Servlet/JSP/Java appl.) need to
invoke an business method from an EJB, it first lookup
for the registered name from the Application server
and obtain the remote reference i.e. the EJB Remote
interface. To do this, the client must have got the
client-jar file containing the stub. Now, if in aFor web components running in the same application context, the client-jar is not required - the server-jar also contains the necessary stubs. However, for application clients, the client-jar is required...
distributed environment, my client is in a different
machine and need to access the J2EE server across
network, what would be the scenereo.The client-jar must be distributed with your application, or accessible from a shared network resource, either way...
Is it so, for every EJB the client need to call, it
must have got the client-jar file in it's local
classpath? this seems to be not at all feasible.Yes, the client-jar must be included in the client's classpath... Why isn't it feasible? The client-jar(s) can easily be distributed with your application. The necessity to include them in the application's CLASSPATH does not necessitate their inclusion into the client-machine's CLASSPATH. Simply include the jar(s) as part of the JVM's -cp option.
Is it so, the client loads the Stub acroos the network
while obtaining the remote reference?A copy of the remote interface's stub file is included for casting purposes. However, a copy of the stub containing the correct communication parameters (such as TCP/IP port number, reference ID, etc. per vendor implementation...), for the remote reference does get downloaded.
Please inform me, what actually happens when a client
invokes a EJB call deployed in any application server,
across the network !!!The exact details are vendor specific and depends on the actual protocol in use by the stub-layer. However, the general behaviour is in-line with RMI(-IIOP) communication.
Regards,
Kaustuv BhattacharyaRegards,
Tony "Vee Schade" Cook -
Access EJB from Servlet that in different archive?
<font class="mediumtxt">package kyro.ejb.session;
import javax.ejb.*;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless(name="StandAlone")
@Remote(StandAlone.class)
public class StandAloneBean
implements StandAlone, StandAloneLocal
public StandAloneBean() {
public String sayHello() {
return "sayHello";
I want to access ejb from servlet that .war and .jar not in single .ear. I want to try that just with annotation not xml descriptor cause is easy to understand for me. I use Glassfish. But i can't lookup that ejb. How can i lookup that ejb with jndi? Can't you give me example of servlet to access that? I not use JNDI.properties, are that caused i can't access my ejb? I just thing .war and.jar in one server, are i have to used JNDI.properties. can you explain how to use JNDI.properties in servlet or separate file?
</font>But i can't lookup that ejb. How are you trying and what exception is occurring?
How can i lookup that ejb with jndi? [https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html|https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html]
m -
How to access ejb jar in ear package from other war web package?
How to access ejb in jar packed in ear package from other war web package?
Typically you would just look the EJB Home up in JNDI. If you're
looking for example code, the medrec example in WLS 8.1 or petstore has
plenty of webapps calling EJBs.
-- Rob
CottonXu wrote:
How to access ejb in jar packed in ear package from other war web package? -
Accessing WebLogic EJBs from Tomcat 3.2
Has anyone out there tried to access EJBs in a WebLogic 5.10 SP6 app
server from a servlet in Tomcat 3.2? I'm operating under Win2K. When I
try to create the initial naming context, the following exception is
thrown:
java.lang.NoClassDefFoundError: COM/rsa/jsafe/JSAFE_InvalidUseException
at weblogic.security.WLMessageDigest.getInstance
(WLMessageDigest.java:52)
at weblogic.security.MD5RandomBitsSource.seed
(MD5RandomBitsSource.java:56)
at weblogic.rjvm.LocalRJVM.<init>(LocalRJVM.java:108)
at weblogic.rjvm.LocalRJVM.getLocalRJVM(LocalRJVM.java:85)
at weblogic.rjvm.RJVMManager.getLocalRJVM(RJVMManager.java:89)
at weblogic.rjvm.RJVMManager.initialize(RJVMManager.java:78)
at weblogic.kernel.Kernel.ensureInitialized(Kernel.java:137)
at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:182)
at
weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(
WLInitialContextFactoryDelegate.java, Compiled Code)
at
weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(
WLInitialContextFactoryDelegate.java:148)
at weblogic.jndi.WLInitialContextFactory.getInitialContext(
WLInitialContextFactory.java:123)
at javax.naming.spi.NamingManager.getInitialContext(
NamingManager.java:771)
at javax.naming.InitialContext.getDefaultInitCtx(
InitialContext.java:169)
at javax.naming.InitialContext.<init>(InitialContext.java:146)
From poking around in the WebLogic server directories, in appears that
the RSA-related classes are implemented as native methods in jsafe.dll.
Should I be trying to install this dll in Tomcat somehow? If so, where
should I be looking for information on how to do this?
-- Erik"Erik Horstkotte" <[email protected]> wrote in message news:[email protected]...
Has anyone out there tried to access EJBs in a WebLogic 5.10 SP6 app
server from a servlet in Tomcat 3.2? I'm operating under Win2K. When I
try to create the initial naming context, the following exception is
thrown:[Sigh. I know it's bad form to follow up your own posts, but...]
Ignore the exact problem description above. I wasn't including
\weblogic\classes and \weblogic\lib\weblogicaux.jar in Tomcat's
classpath. Now the same code connects to the app server:
Connected successfully using http to JIMBO/172.16.1.4:7001
But immediately after connecting, I get a new exception:
java.lang.NoSuchMethodError: java.lang.NoSuchMethodException:
getNameInNamespace
at weblogic.jndi.toolkit.BasicWLContext_WLStub.ensureInitialized
(BasicWLContext_WLStub.java:127)
at weblogic.jndi.toolkit.BasicWLContext_WLStub.<init>
(BasicWLContext_WLStub.java:146)
at java.lang.reflect.Constructor.newInstance(Native Method)
at weblogic.common.internal.ClassTableEntry.newInstance
(ClassTableEntry.java:86)
at weblogic.common.internal.WLObjectInputStreamBase.readLeftover
(WLObjectInputStreamBase.java:248)
at weblogic.common.internal.WLObjectInputStreamBase
.readObjectBody (WLObjectInputStreamBase.java:202)
at weblogic.common.internal.WLObjectInputStreamBase.readObject
(WLObjectInputStreamBase.java:949)
at weblogic.common.internal.WLObjectInputStreamBase.readObjectWL
(WLObjectInputStreamBase.java:308)
at weblogic.jndi.toolkit.WLContextStub.readExternal
(WLContextStub.java:79)
at weblogic.common.internal.WLObjectInputStreamBase
.readPublicSerializable(WLObjectInputStreamBase.java:269)
at weblogic.common.internal.WLObjectInputStreamBase.readLeftover
(WLObjectInputStreamBase.java:254)
at weblogic.common.internal.WLObjectInputStreamBase.readObjectBody
(WLObjectInputStreamBase.java:202)
at weblogic.common.internal.WLObjectInputStreamBase.readObject
(WLObjectInputStreamBase.java:949)
at weblogic.common.internal.WLObjectInputStreamBase.readObjectWL
(WLObjectInputStreamBase.java:308)
at weblogic.rmi.extensions.AbstractInputStream2.readObject
(AbstractInputStream2.java:25)
at weblogic.jndi.internal.RemoteContextFactoryImpl_WLStub
.getContext(RemoteContextFactoryImpl_WLStub.java:99)
at weblogic.jndi.WLInitialContextFactoryDelegate
.newRemoteContext(WLInitialContextFactoryDelegate.java:316)
at weblogic.jndi.WLInitialContextFactoryDelegate.newContext
(WLInitialContextFactoryDelegate.java:242)
at weblogic.jndi.WLInitialContextFactoryDelegate
.getInitialContext(WLInitialContextFactoryDelegate.java, Compiled
Code)
at weblogic.jndi.WLInitialContextFactoryDelegate
.getInitialContext(WLInitialContextFactoryDelegate.java:148)
at weblogic.jndi.WLInitialContextFactory.getInitialContext
(WLInitialContextFactory.java:123)
at javax.naming.spi.NamingManager.getInitialContext
(NamingManager.java:771)
at javax.naming.InitialContext.getDefaultInitCtx
(InitialContext.java:169)
at javax.naming.InitialContext.<init>(InitialContext.java:146)
getNameInNamespace isn't a method in any of my EJB's (that I wrote, at
least - it could be generated by weblogic.ejbc), and it's not a method
I'm calling directly. Presumably, something in the remote session bean
creation is calling this method (of what class?)
Am still I missing classpath entries in Tomcat? If so, which ones?
If you've successfully referenced EJBs in a WebLogic Server from a
Tomcat servlet, what setup changes did you have to make to Tomcat and
WLS to make it fly?
-- Erik
Maybe you are looking for
-
Mac Mini worked at first with Haier 42" plasma - now won't. Please Help!
I'd be interested in any resolution here. Here's my story: I have a Mac Mini model MA723LL/A and a Haier P42LV6-T1 42" HDTV plasma with VGA and HDMI inputs. I first attempted to hook the Mac to the plasma TV using the DVI->VGA adapter that came with
-
ACTIVITY MONITOR WONT OPEN! PLEASE HELP
How come everytime I open ACTIVITY MONITOR i just get the color wheel and it never opens?
-
Just got a new iMac my itunes will not sync music to iPod
just got new imac itunes will not sync music to ipod
-
i need help fixing this because when i wanna put it to sleep so it does not waste all the battery i cant...it stays on all day
-
Can't get podcasts onto iPod nano!! please please help!
I've been trying and trying to figure this out but I don't know what the problem is. Whenever I try to sync my podcasts to my ipod it will seem like it's downloading and it will say "syncing ipod. do not disconnect" for about 5 seconds and then it wi