Encoding in EJB
Hi all,
I am developing a web applications for finding Japanese words from an Oracle database. The Japanese words are stored in the data base as unicodes.(I directly inserted the unicode values into the database using a java program)
I developed a jsp application with struts if works fine. It search for japanese words from the db and displays as it is in the jsp page. Here I used EUC-JP encoding.
But when I use an ejb for this finding (i used CMP with WLQL for finder), it doesn't search the word properly, and when I retrive all words from the db it returnd question marks for each character.(?).
I think it is due to different encoding used in the ejb.
How can I solve this problem
regards
kumaran
I think it is due to different encoding used in the
ejb. No, EJB's support unicode as all Java programms.
Problem should be related with JDBC driver that your container is using.
Perhaps you need to specify encoding in JDBC url or something.
Similar Messages
-
How to deploy the EJB which used Japanese word on Weblogic server
Hi All,
I am running a test on WIN 2K pro Japanese system. When I deploy an ejb bean with
using Japanese character in the Java src code and also in ejb-jar.xml file, some
exceptions were thrown.
I am thinking that the weblogic cann’t pass ejb-jar.xml which is encoding as UTF-8
but with Japanese character. Could you please let me know how to configure the
Weblogic to solve the problem or to encode the ejb-jar.xml differently?
Any suggestion will be welcome.
Thanks,
OUTPUT>>OUTPUT>>Invalid byte 3 of 3-byte UTF-8 sequence.
OUTPUT>>OUTPUT>>java.io.UTFDataFormatException: Invalid byte 3 of 3-byte UTF-8
s
equence.
OUTPUT>>OUTPUT>> at weblogic.apache.xerces.impl.io.UTF8Reader.invalidByte
(UTF8Reader.java:693)
OUTPUT>>OUTPUT>> at weblogic.apache.xerces.impl.io.UTF8Reader.read(UTF8Re
ader.java:445)
===
weblogic.management.ApplicationException:
Exception:weblogic.management.ApplicationException: prepare failed for ejb
Module: ejb Error: Exception preparing module: EJBModule(ejb,status=NEW)
EJB ejb.jar ‚ð ejb.jar ‚©‚çƒfƒvƒƒC‚Å‚«‚Ü‚¹‚ñB
EJB ‚Ђ낱 ‚Å‚ÍA‚·‚×‚Ä‚Ì cmp/cmr ƒtƒB[ƒ‹ƒh‚ª¬•¶Žš‚ÅŠJŽn‚³‚ê‚é•K—v‚ª‚ ‚è‚Ü‚·BƒtƒB[ƒ‹ƒh
'‚È‚Ü‚¦‚P' ‚Í‚±‚ê‚É“K‡‚µ‚Ü‚¹‚ñB
at weblogic.ejb20.compliance.EJBComplianceChecker.check(EJBComplianceChecker.java:268)
at weblogic.ejb20.compliance.EJBComplianceChecker.checkDeploymentInfo(EJBComplianceChecker.java:232)
at weblogic.ejb20.ejbc.EJBCompiler.complianceCheckJar(EJBCompiler.java:810)
at weblogic.ejb20.ejbc.EJBCompiler.checkCompliance(EJBCompiler.java:766)
at weblogic.ejb20.ejbc.EJBCompiler.doCompile(EJBCompiler.java:200)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:476)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:407)
at weblogic.ejb20.deployer.EJBDeployer.runEJBC(EJBDeployer.java:493)
at weblogic.ejb20.deployer.EJBDeployer.compileJar(EJBDeployer.java:763)
at weblogic.ejb20.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:701)
at weblogic.ejb20.deployer.EJBDeployer.prepare(EJBDeployer.java:1277)
at weblogic.ejb20.deployer.EJBModule.prepare(EJBModule.java:477)
at weblogic.j2ee.J2EEApplicationContainer.prepareModule(J2EEApplicationContainer.java:2962)
at weblogic.j2ee.J2EEApplicationContainer.prepareModules(J2EEApplicationContainer.java:1534)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1188)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1031)
at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.prepareContainer(SlaveDeployer.java:2602)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2552)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
Making application available for use ... done.
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
weblogic.ejb20.compliance.ComplianceException: EJB ‚Ђ낱 ‚Å‚ÍA‚·‚×‚Ä‚Ì cmp/cmr
ƒtƒB[ƒ‹ƒh‚ª¬•¶Žš‚ÅŠJŽn‚³‚ê‚é•K—v‚ª‚ ‚è‚Ü‚·BƒtƒB[ƒ‹ƒh '‚È‚Ü‚¦‚P' ‚Í‚±‚ê‚É“K‡‚µ‚Ü‚¹‚ñB
at weblogic.ejb20.compliance.EJB20EntityBeanClassChecker.checkCMPFields(EJB20EntityBeanClassChecker.java:178)
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 weblogic.ejb20.compliance.EJBComplianceChecker.check(EJBComplianceChecker.java:278)
at weblogic.ejb20.compliance.EJBComplianceChecker.checkDeploymentInfo(EJBComplianceChecker.java:232)
at weblogic.ejb20.ejbc.EJBCompiler.complianceCheckJar(EJBCompiler.java:810)
at weblogic.ejb20.ejbc.EJBCompiler.checkCompliance(EJBCompiler.java:766)
at weblogic.ejb20.ejbc.EJBCompiler.doCompile(EJBCompiler.java:200)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:476)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:407)
at weblogic.ejb20.deployer.EJBDeployer.runEJBC(EJBDeployer.java:493)
at weblogic.ejb20.deployer.EJBDeployer.compileJar(EJBDeployer.java:763)
at weblogic.ejb20.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:701)
at weblogic.ejb20.deployer.EJBDeployer.prepare(EJBDeployer.java:1277)
at weblogic.ejb20.deployer.EJBModule.prepare(EJBModule.java:477)
at weblogic.j2ee.J2EEApplicationContainer.prepareModule(J2EEApplicationContainer.java:2962)
at weblogic.j2ee.J2EEApplicationContainer.prepareModules(J2EEApplicationContainer.java:1534)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1188)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1031)
at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.prepareContainer(SlaveDeployer.java:2602)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2552)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2556)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
--------------- nested within: ------------------
weblogic.management.ManagementException: - with nested exception:
[weblogic.management.ApplicationException:
Exception:weblogic.management.ApplicationException: prepare failed for ejb
Module: ejb Error: Exception preparing module: EJBModule(ejb,status=NEW)
EJB ejb.jar ‚ð ejb.jar ‚©‚çƒfƒvƒƒC‚Å‚«‚Ü‚¹‚ñB
EJB ‚Ђ낱 ‚Å‚ÍA‚·‚×‚Ä‚Ì cmp/cmr ƒtƒB[ƒ‹ƒh‚ª¬•¶Žš‚ÅŠJŽn‚³‚ê‚é•K—v‚ª‚ ‚è‚Ü‚·BƒtƒB[ƒ‹ƒh
'‚È‚Ü‚¦‚P' ‚Í‚±‚ê‚É“K‡‚µ‚Ü‚¹‚ñB
at weblogic.ejb20.compliance.EJBComplianceChecker.check(EJBComplianceChecker.java:268)
at weblogic.ejb20.compliance.EJBComplianceChecker.checkDeploymentInfo(EJBComplianceChecker.java:232)
at weblogic.ejb20.ejbc.EJBCompiler.complianceCheckJar(EJBCompiler.java:810)
at weblogic.ejb20.ejbc.EJBCompiler.checkCompliance(EJBCompiler.java:766)
at weblogic.ejb20.ejbc.EJBCompiler.doCompile(EJBCompiler.java:200)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:476)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:407)
at weblogic.ejb20.deployer.EJBDeployer.runEJBC(EJBDeployer.java:493)
at weblogic.ejb20.deployer.EJBDeployer.compileJar(EJBDeployer.java:763)
at weblogic.ejb20.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:701)
at weblogic.ejb20.deployer.EJBDeployer.prepare(EJBDeployer.java:1277)
at weblogic.ejb20.deployer.EJBModule.prepare(EJBModule.java:477)
at weblogic.j2ee.J2EEApplicationContainer.prepareModule(J2EEApplicationContainer.java:2962)
at weblogic.j2ee.J2EEApplicationContainer.prepareModules(J2EEApplicationContainer.java:1534)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1188)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1031)
at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.prepareContainer(SlaveDeployer.java:2602)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2552)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
weblogic.ejb20.compliance.ComplianceException: EJB ‚Ђ낱 ‚Å‚ÍA‚·‚×‚Ä‚Ì cmp/cmr
ƒtƒB[ƒ‹ƒh‚ª¬•¶Žš‚ÅŠJŽn‚³‚ê‚é•K—v‚ª‚ ‚è‚Ü‚·BƒtƒB[ƒ‹ƒh '‚È‚Ü‚¦‚P' ‚Í‚±‚ê‚É“K‡‚µ‚Ü‚¹‚ñB
at weblogic.ejb20.compliance.EJB20EntityBeanClassChecker.checkCMPFields(EJB20EntityBeanClassChecker.java:178)
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 weblogic.ejb20.compliance.EJBComplianceChecker.check(EJBComplianceChecker.java:278)
at weblogic.ejb20.compliance.EJBComplianceChecker.checkDeploymentInfo(EJBComplianceChecker.java:232)
at weblogic.ejb20.ejbc.EJBCompiler.complianceCheckJar(EJBCompiler.java:810)
at weblogic.ejb20.ejbc.EJBCompiler.checkCompliance(EJBCompiler.java:766)
at weblogic.ejb20.ejbc.EJBCompiler.doCompile(EJBCompiler.java:200)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:476)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:407)
at weblogic.ejb20.deployer.EJBDeployer.runEJBC(EJBDeployer.java:493)
at weblogic.ejb20.deployer.EJBDeployer.compileJar(EJBDeployer.java:763)
at weblogic.ejb20.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:701)
at weblogic.ejb20.deployer.EJBDeployer.prepare(EJBDeployer.java:1277)
at weblogic.ejb20.deployer.EJBModule.prepare(EJBModule.java:477)
at weblogic.j2ee.J2EEApplicationContainer.prepareModule(J2EEApplicationContainer.java:2962)
at weblogic.j2ee.J2EEApplicationContainer.prepareModules(J2EEApplicationContainer.java:1534)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1188)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java:1031)
at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.prepareContainer(SlaveDeployer.java:2602)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(SlaveDeployer.java:2552)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2474)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2491)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>Open your server console (eg: http://localhost:7001/console)
Go to deployment modules
select ejb modules
Click deploy new ejb module
a browse will come, browse and find the applicaiton folder where u have kept your ejb
Select that and click deploy..
Error msg or successful message will come in the console window.
regards
SHanu -
Error connecting to an EJB 3.0 Remote on OC4J 10.1.3.2 from Tomcat
Hi, I want to connect to a Remote Session Bean running on the OC4J 10.1.3 and it doesn´t work.
I have connected to it from a java standalone application using:
public static void main(String [] args) {
try {
final Context context = getInitialContext();
SessionEJB sessionEJB = (SessionEJB)context.lookup("java:comp/env/ejb/SessionEJB");
System.out.println(sessionEJB.mergeEntity(""));
System.out.println( "hola" );
} catch (Exception ex) {
ex.printStackTrace();
private static Context getInitialContext() throws NamingException {
Hashtable env = new Hashtable();
// Standalone OC4J connection details
env.put( Context.INITIAL_CONTEXT_FACTORY, "oracle.j2ee.naming.ApplicationClientInitialContextFactory" );
env.put( Context.SECURITY_PRINCIPAL, "oc4jadmin" );
env.put( Context.SECURITY_CREDENTIALS, "passw" );
env.put(Context.PROVIDER_URL, "ormi://localhost:23791/ejb3jar");
return new InitialContext( env );
with this application-client.xml file:
<?xml version = '1.0' encoding = 'windows-1252'?>
<application-client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee">
<display-name>Model-app-client</display-name>
<ejb-ref>
<ejb-ref-name>ejb/SessionEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<remote>ar.com.eds.ejb3.model.SessionEJB</remote>
<ejb-link>SessionEJB</ejb-link>
</ejb-ref>
thats works fine, but when I try to use the same solution from a jsf proyect running on a Tomcat 5.5.20, it fails with this error:
Caused by: java.lang.RuntimeException: Error while creating home.
at ar.com.mcd.fawkes.ui.locator.EJB3Locator.get(EJB3Locator.java:32)
at ar.com.mcd.fawkes.ui.locator.ServiceLocator$1.get(ServiceLocator.java:12)
at net.sf.opentranquera.web.jsf.locator.ServiceLocatorBean.get(ServiceLocatorBean.java:42)
at com.sun.faces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:79)
at com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:187)
at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:171)
at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:160)
... 80 more
Caused by: javax.naming.NameNotFoundException: Name ejb is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:769)
at org.apache.naming.NamingContext.lookup(NamingContext.java:139)
at org.apache.naming.NamingContext.lookup(NamingContext.java:780)
at org.apache.naming.NamingContext.lookup(NamingContext.java:139)
at org.apache.naming.NamingContext.lookup(NamingContext.java:780)
at org.apache.naming.NamingContext.lookup(NamingContext.java:152)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:136)
at javax.naming.InitialContext.lookup(Unknown Source)
at ar.com.mcd.fawkes.ui.locator.EJB3Locator.get(EJB3Locator.java:28)
... 87 more
Could you please help me with any tip?
Mauricio
Message was edited by:
MauricioHi, Rick
Thanks for your help.
I deleted de application-client.xml file, added the following lines to the web.xml file:
<ejb-ref>
<ejb-ref-name>ejb/SessionEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<remote>ar.com.eds.ejb3.model.SessionEJB</remote>
</ejb-ref>
and now I´m using oracle.j2ee.rmi.RMIInitialContextFactory
there is no error, and it doesn´t throw any exception but the following line returns null.
SessionEJB sessionEJB = (SessionEJB)context.lookup("java:comp/env/ejb/SessionEJB");
Its seems the lookup method finds the remote ejb because it doesn´t fail, but it returns null.
Any idea what is wrong?
Mauricio. -
Error in deploying a simple EJB 3.0
Hi ,
I am getting the following error while deploying my simple ejb of version 3.0 in Weblogic 9.2.
Exception preparing module: EJBModule(build) [EJB:011023]An error occurred while reading the deployment descriptor. The error was: Error processing annotations: java.lang.NullPointerException.
During my evaluation of Weblogic 9.2 for EJB 3.0 , I have got the following questions.
EJB Specification states that EJB's in EJB 3.0 can be developed and deployed without the need of deployment descriptors. I have created a simple EJB with two file Env.java and EnvBean.java and the source code is given below.
a) I just complied these class files and when I was trying to deploy without ejb-jar.xml and weblogic-ejb-jar.xml, the console was not at all allowing me to deploy.Why is this so?
b) After I created a META-INF file under root of classes directory by placing ejb-jar.xml with empty <enterprise-beans> element, console was allowing me to deploy with errors in parsing ejb-jar.xml. The error was either session/entity/mdb is a required under <enterprise-beans> element. Why is this required when there are several examples stating <enterprise-beans> element can be empty.
c) Later I updated ejb-jar.xml with <session> element under <enterprise-beans> with the following values. I got the above error when deployed with this change.
I had been struggling to deploy this simple bean for almost a day.Pleas point me if there is any documentation that solves my stated problem or if there is a solution.Thanks in advance.
regards
Karim
ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
<enterprise-beans>
<session>
<description>This is the stateless ejb</description>
<display-name>Env Bean</display-name>
<ejb-name>EnvBean</ejb-name>
</session>
</enterprise-beans>
</ejb-jar>
Env.java
package examples ;
public interface Env {
public void display();
EnvBean.java
package examples;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote(Env.class)
public class EnvBean implements Env {
public void display() {
System.out.println("Welcome to EJB 3.0");
}Presumably you're using the EJB3 tech preview, and not a vanilla WebLogic 9.2 install, right?
Can you post the full stack trace?
-Patrick -
Can not find my EJB's from my Servlet
Hi
I am new to EJB and am trying to get a Servlet to call some sessionless EJB beans. I have got it working in JDeveloper but when I deploy it to orion application server I keep getting a javax.naming.NameNotFoundException exception throw from the Servlet when it tries to find the first EJB.
The code in the Servlet is:
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
env.put(Context.SECURITY_PRINCIPAL, "admin");
env.put(Context.SECURITY_CREDENTIALS, "jewels");
// env.put(Context.PROVIDER_URL, "ormi://localhost:23891/current-workspace-app");
env.put(Context.PROVIDER_URL, "ormi://localhost:23791/dev");
Context ctx = new InitialContext(env);
System.out.println("Getting mapping class ejb");
//mapping
ExponentMappingServiceHome mappingHome = (ExponentMappingServiceHome)ctx.lookup("ExponentMappingServiceHome");
ExponentMappingService mapping = mappingHome.create();
My EJB xml looks like this:
<?xml version = '1.0' encoding = 'windows-1252'?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
<ejb-jar>
<enterprise-beans>
<session>
<description>Session Bean ( Stateless )</description>
<display-name>ExponentMappingService</display-name>
<ejb-name>ExponentMappingService</ejb-name>
<home>com.exponent.ejb.service.map.ExponentMappingServiceHome</home>
<remote>com.exponent.ejb.service.map.ExponentMappingService</remote>
<ejb-class>com.exponent.ejb.service.map.ExponentMappingServiceBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
<session>
<description>Session Bean ( Stateless )</description>
<display-name>ExponentMappingViewsService</display-name>
<ejb-name>ExponentMappingViewsService</ejb-name>
<home>com.exponent.ejb.service.map.ExponentMappingViewsServiceHome</home>
<remote>com.exponent.ejb.service.map.ExponentMappingViewsService</remote>
<ejb-class>com.exponent.ejb.service.map.ExponentMappingViewsServiceBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
<session>
<description>Session Bean ( Stateless )</description>
<display-name>FalconService</display-name>
<ejb-name>FalconService</ejb-name>
<home>com.exponent.ejb.service.FalconServiceHome</home>
<remote>com.exponent.ejb.service.FalconService</remote>
<ejb-class>com.exponent.ejb.service.FalconServiceBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
I have been trying for a while to get the JNDI naming right but everything I try gets the above error. Any help would be great.
Thanks
AndreYou have to lookup for "ExponentMappingService", and not "ExponentMappingServiceHome"
The name you give in the <ejb-name> tag in ejb-jar.xml is the JNDI name of the EJB. This is the name u have to look up. -
Hi, all
I am a newbie in EJB and I am following the example in the URL:
http://www.huihoo.com/jboss/online_manual/3.0/
I am working on the 'interest' example in the first chapter.
When it come to 'Packaging and deploying the bean', I got some meaage like this:
ant intro-interest-jar
Buildfile: build.xml
validate-servlet:
validate-jboss:
fail_if_not_valid:
init:
[echo] Using JBoss directory=/opt/jboss
[echo] Using base classpath=/opt/jboss/client/jboss-j2ee.jar:/opt/jboss/client/jaas.jar:/opt/jboss/client/jbosssx-client.jar:/opt/jboss/client/jboss-client.jar:/opt/jboss/client/jnp-client.jar:/home/xiaobo/learningejb/examples/COULD_NOT_FIND_SERVLET_JAR
[echo] Using Source directory=/home/xiaobo/learningejb/examples
[echo] Using Build directory=/home/xiaobo/learningejb/examples/build-examples
intro-interest-jar:
compile:
ejb-jar:
[delete] Deleting directory /home/xiaobo/learningejb/examples/build-examples/interest/META-INF
[mkdir] Created dir: /home/xiaobo/learningejb/examples/build-examples/interest/META-INF
[copy] Copying 1 file to /home/xiaobo/learningejb/examples/build-examples/interest/META-INF
[copy] Copying 1 file to /home/xiaobo/learningejb/examples/build-examples/interest/META-INF
[jar] Building jar: /home/xiaobo/learningejb/examples/build-examples/interest/interest.jar
BUILD SUCCESSFUL
Total time: 2 seconds
Why did I get this:
/home/xiaobo/learningejb/examples/COULD_NOT_FIND_SERVLET_JAR.
But if I check the "interest.jar" by using 'jar -tvf interest.jar' in the "~/learningejb/examples/build-examples/interest$" directory, it seems it had all files and directories in it.
But if I copy this jar file into the deploy directory in jboss, and I check the log file 'server.log'
I found this error message:
2005-11-28 17:31:03,536 DEBUG [org.jboss.management.j2ee.LocalJBossServerDomain] handleNotification: javax.management.Notification[source=jboss.ejb:service=EJBDeployer,type=org.jboss.deployment.SubDeployer.stop,sequenceNumber=15,timeStamp=1133213463536,message=null,userData=org.jboss.deployment.DeploymentInfo@c36a9f52 { url=file:/opt/jboss-3.2.5/server/default/deploy/interest.jar }
deployer: org.jboss.ejb.EJBDeployer@3c9c31
status: Deployment FAILED reason: ejb-jar.xml must define a valid DOCTYPE!
state: FAILED
watch: file:/opt/jboss-3.2.5/server/default/deploy/interest.jar
lastDeployed: 1133210324921
lastModified: 1133210324000
mbeans:
Then I add the follwoing line into the 'ejb-jar.xml':
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
so the 'ejb-jar.xml' looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<description>JBoss Interest Sample Application</description>
<display-name>Interest EJB</display-name>
<enterprise-beans>
<session>
<ejb-name>Interest</ejb-name>
<home>org.jboss.docs.interest.InterestHome</home>
<remote>org.jboss.docs.interest.Interest</remote>
<ejb-class>org.jboss.docs.interest.InterestBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
and I rejar it and copy the jar file into the deploy directory. I still got the same error message in the log file???!!!
Please help!
X.ChenIt's a no brainer between the AirPort Extreme and Airport Express.
The AirPort Extreme has 6 wireless antennas up at the top of the "tower", while the AirPort Express has four, so the Extreme has significantly better wireless speed and range than the Express.
As you know, the broadcast power of wireless routers is limited by law, and most routers are running full blast. Apple routers are not known for their broadcast power, so what we cannot tell you is whether the Extreme will outperform the existing wireless router that you already have in terms of range.
Also as you know, the speed of your Internet connection is limited to the plan that you have with Verizon. An Apple router cannot take the speed of Internet connection that it receives from your Verizon plan and make it go any faster.
A user who has both the same Verizon router as you and an AirPort Extreme might be able to tell you how the products compare in his home.
But...and this is a big BUT...... the bottom line with any wireless router is that you will not know how well it performs in your home until you try it out in your home. To think otherwise would be foolhardy at best.
Buy from Apple and you have a 14 day return privilege in case things don't work as well as hoped. Other stores may offer a similar option. Check first, before you buy. -
Reference for Connecting EJB in KM scheduler Task
Hi,
What are the main References we need to add portalapp.xml,when we connect Ejb in Km scheduler Tasks
For Example:
portalapp.xml
<?xml version="1.0" encoding="UTF-8"?>
<application >
<application-config>
<property name="SharingReference" value="usermanagement, knowledgemanagement,landscape, htmlb, exportalJCOclient, exportal, com.sap.portal.admin.wizardframework"/> </application-config>
<components/>
<services>
<service name="RFServiceWrapper">
<service-config>
<property name="className" value="com.sap.netweaver.rf.wrapper.RFServiceWrapper"/>
<property name="startup" value="true"/>
</service-config>
</service>
</services>
</application>
Regards,
VinoHi,
Try some thing like this:
ClassLoader originalContextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
Context initial = new InitialContext();
Object objref = initial.lookup("JNDI Name Of the Session Bean");
Object obj = PortableRemoteObject.narrow(objref, BeanHome.class);
} catch (NamingException ex) {
ex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
finally {
Thread.currentThread().setContextClassLoader(originalContextClassLoader);
Regards,
Praveen Gudapati -
Hello everybody,
I've a problem to call a EJB form a PHP script.
There is a Apache with PHP 5.2.0 and a SAP NetWeaver Application Server 7.10 / AS Java 7.10 running on the system.
I wanted to use soap to call a method in an EJB. It's only a test EJB:
[code]
package beans;
import javax.ejb.Stateless;
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService(name="HelloWorldEARBean",serviceName="HelloWorldEARBeanService",targetNamespace="http://beans/",portName="HelloWorldEARBeanPort") @Stateless public class HelloWorldEARBean {
@WebMethod public String sayHello(String testStr){
return "Hello Mr. "+testStr;
@WebMethod public String getReturn(String inputStr){
return "the return value is"+inputStr;
[/code]
I tried it with the PEAR SOAP in the following script:
[code]
<?php
require_once 'SOAP/Client.php';
$wsdl_url = 'http://localhost:50000/HelloWorldEARBeanService/HelloWorldEARBean?wsdl';
$WSDL = new SOAP_WSDL($wsdl_url);
$client = $WSDL->getProxy();
$client->__trace(1);
$options=array('namespace' => 'http://beans/',
'style' => 'rpc',
'soapaction' => 'sayHello');
$NAME = "Bob";
$parameters=array(
'parameters', $NAME
$result = $client->getReturn($parameters);
echo "<pre>";
print_r($params);
echo "</pre>";
echo "<h2>return</h2>";
echo "<pre>";
print_r($result);
echo "</pre>";
echo '<h2>Request</h2>';
echo '<pre>' . htmlspecialchars($client->__getlastrequest(), ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2>';
echo '<pre>' . htmlspecialchars($client->__getlastresponse(), ENT_QUOTES). '</pre>';
?>
[/code]
The AS distributes the following WSDL:
[code]
- <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://beans/" xmlns:tns="http://beans/">
- <wsdl:types>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://beans/">
<xs:element name="getReturn" type="tns:getReturn" />
<xs:element name="getReturnResponse" type="tns:getReturnResponse" />
<xs:element name="sayHello" type="tns:sayHello" />
<xs:element name="sayHelloResponse" type="tns:sayHelloResponse" />
- <xs:complexType name="sayHello">
- <xs:sequence>
<xs:element name="arg0" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
- <xs:complexType name="sayHelloResponse">
- <xs:sequence>
<xs:element name="return" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
- <xs:complexType name="getReturn">
- <xs:sequence>
<xs:element name="arg0" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
- <xs:complexType name="getReturnResponse">
- <xs:sequence>
<xs:element name="return" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
- <wsdl:message name="sayHelloIn">
<wsdl:part name="parameters" element="tns:sayHello" />
</wsdl:message>
- <wsdl:message name="sayHelloOut">
<wsdl:part name="sayHelloResponse" element="tns:sayHelloResponse" />
</wsdl:message>
- <wsdl:message name="getReturnIn">
<wsdl:part name="parameters" element="tns:getReturn" />
</wsdl:message>
- <wsdl:message name="getReturnOut">
<wsdl:part name="getReturnResponse" element="tns:getReturnResponse" />
</wsdl:message>
- <wsdl:portType name="HelloWorldEARBean">
- <wsdl:operation name="sayHello" parameterOrder="parameters">
<wsdl:input message="tns:sayHelloIn" />
<wsdl:output message="tns:sayHelloOut" />
</wsdl:operation>
- <wsdl:operation name="getReturn" parameterOrder="parameters">
<wsdl:input message="tns:getReturnIn" />
<wsdl:output message="tns:getReturnOut" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="HelloWorldEARBeanBinding" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" type="tns:HelloWorldEARBean">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="sayHello">
<soap:operation soapAction="" />
- <wsdl:input>
<soap:body parts="parameters" use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="getReturn">
<soap:operation soapAction="" />
- <wsdl:input>
<soap:body parts="parameters" use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="HelloWorldEARBeanService">
- <wsdl:port name="HelloWorldEARBeanPort" binding="tns:HelloWorldEARBeanBinding">
<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://localhost:50000/HelloWorldEARBeanService/HelloWorldEARBean" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
[/code]
By the following output it's obvious that the AS or the EJB (webservice) doesn't receive the parameter send by the PHP script. Look at the output:
return value:
the return value is null
[code]
Request:
POST /HelloWorldEARBeanService/HelloWorldEARBean HTTP/1.0
User-Agent: PEAR-SOAP 0.8.0RC4-devel
Host: localhost
Content-Type: text/xml; charset=UTF-8
Content-Length: 438
SOAPAction: ""
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
>
<SOAP-ENV:Body>
<getReturn xmlns="http://beans/">
<item>parameters</item>
<item>Bob</item></getReturn>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response:
HTTP/1.1 200 OK
server: SAP NetWeaver Application Server 7.10 / AS Java 7.10
content-type: text/xml; charset=utf-8
date: Wed, 14 Feb 2007 15:51:53 GMT
connection: close
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Created>2007-02-14T15:51:53Z</wsu:Created>
<wsu:Expires>2007-02-14T15:52:23Z</wsu:Expires></wsu:Timestamp></wsse:Security></SOAP-ENV:Header>
<SOAP-ENV:Body><ns2:getReturnResponse xmlns:ns2='http://beans/'>
<return>the return value is null</return></ns2:getReturnResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
[/code]
I used different soap interfaces for PHP like nusoap and the integrated soap interface of PHP 5.
Further I experimented with different parameters inside the function call
that results in small differencies at the xml-request.
Thanks.Hi
I've solved the problem now. I just have to add
@SOAPBinding(style=SOAPBinding.Style.RPC)
in the EJB, that's all.
Here is the complete code, ... maybe some other guys have this problem too, so I will post the working code:
At first the EJB:
package beans;
import javax.ejb.Stateless;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.soap.SOAPBinding;
import beans.HelloWorldEARBean;
@WebService(name="HelloWorldEARBean",serviceName="HelloWorldEARBeanService",targetNamespace="http://beans/",portName="HelloWorldEARBeanPort")
@SOAPBinding(style=SOAPBinding.Style.RPC)
@Stateless public class HelloWorldEARBean {
@WebMethod public String sayHello(@WebParam(name="testStr") String testStr){
return "Hello Mr. "+testStr;
2. the local XML:
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://beans/" xmlns:tns="http://beans/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://beans/">
<xs:element name="sayHello" type="tns:sayHello"/>
<xs:element name="sayHelloResponse" type="tns:sayHelloResponse"/>
<xs:complexType name="sayHello">
<xs:element name="testStr" type="xs:string" minOccurs="0"/>
</xs:complexType>
<xs:complexType name="sayHelloResponse">
<xs:element name="return" type="xs:string" minOccurs="0"/>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="sayHelloIn">
<wsdl:part name="parameters" element="tns:sayHello"/>
</wsdl:message>
<wsdl:message name="sayHelloOut">
<wsdl:part name="sayHelloResponse" element="tns:sayHelloResponse"/>
</wsdl:message>
<wsdl:portType name="HelloWorldEARBean">
<wsdl:operation name="sayHello" parameterOrder="parameters">
<wsdl:input message="tns:sayHelloIn"/>
<wsdl:output message="tns:sayHelloOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="HelloWorldEARBeanBinding" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" type="tns:HelloWorldEARBean">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="sayHello">
<soap:operation soapAction=""/>
<wsdl:input>
<soap:body parts="parameters" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="HelloWorldEARBeanService">
<wsdl:port name="HelloWorldEARBeanPort" binding="tns:HelloWorldEARBeanBinding">
<soap:address xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" location="http://localhost:50000/HelloWorldEARBeanService/HelloWorldEARBean"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
3. the PHP script:
see next post
Thank you very much for your help. -
Unable to load "ejb.jar" to database
Hi All,
I am trying to load ejb.jar to database by using the following syntax.
loadjava -verbose -force -resolve -oracleresolver -user <uname>/<password>@<server>:<port>:<sid> -t ejb.jar
But it is showing error :
ksh: loadjava : not found.
In the server when i type loadjava it is showing the options, means loadjava will work i think. Is there any configuration needs to change to load ejb.jar to database ?
Machine details :
AIX 64 Bit 5.3
DB : Oracle 11g 11.2.0.2.0
Appreciated your help in this.
Thanks,
PrakashPrakash wrote:
Hi,
I did the following
export PATH=$ORACLE_HOME/bin
Then
loadjava -verbose -force -resolve -oracleresolver -user <Uname>/<Pwd>@<Server>:<Port>:<Sid> -t ejb.jar
But still i m facing the same issue.
Even the .profile also we have defined : export PATH=$PATH:$ORACLE_HOME/bin/
Can you please point me what is missing in the above steps i followed.
Thanks,
Prakash
PLEASE use COPY & PASTE so we can see exactly what you do & response from OS/Oracle
what is "-t" arguement?
bcm@bcm-laptop:~$ loadjava
loadjava: Usage: loadjava [-definer] [-encoding encoding] [-force] [-genmissing] [-genmissingjar jar] [-grant grants] [-help] [-nousage] [-noverify] [-oci8] [-order] [-resolve] [-nativecompile] [-resolver resolver] [-schema schema] [-synonym] [-thin] [-tableschema schema] [-user user/password@database] [-verbose] [-edition edition] classes..jars..resources..properties...
bcm@bcm-laptop:~$ -
How to get the TransactionManager in a stateful EJB (using JPA toplink)
I use weblogic 10.3
This is my stateful EJB and I need to get the TransactionManager because I want to suspend my transaction...
Here it is ok for the UserTransaction ut but I got an error with the TransactionManager
EJB Code
//@Stateless(name = "MyFacadeEJB", mappedName = "MyFacadeEJB")
@Stateful(name = "MyFacadeEJB", mappedName = "MyFacadeEJB")
@TransactionManagement(TransactionManagementType.BEAN)
@Remote
@Local
public class MyFacadeEJBBean implements MyFacadeEJB, MyFacadeEJBLocal, Serializable {
@Resource javax.transaction.UserTransaction ut;
@Resource javax.transaction.TransactionManager tm;
Error Message at the deploy EJB
Unable to deploy EJB: MyFacadeEJB from PocJTA-PEJB-ejb:
[EJB:011026]The EJB container failed while creating the java:/comp/env namespace for this EJB deployment.
weblogic.deployment.EnvironmentException: [EJB:010176]The resource-env-ref 'test.ejb.MyFacadeEJBBean/tm' declared in the ejb-jar.xml descriptor or annotation has no JNDI name mapped to it. The resource-ref must be mapped to a JNDI name using the resource-description element of the weblogic-ejb-jar.xml descriptor or corresponding annotation.
at weblogic.ejb.container.deployer.EnvironmentBuilder.addResourceEnvReferences(EnvironmentBuilder.java:639)
at weblogic.ejb.container.deployer.EJBDeployer.setupEnvironmentContext(EJBDeployer.java:247)Chpruvos,
Hi, I ran into a similar issue when specifying WebLogic specific descriptors in ejb-jar.xml and the corresponding weblogic-ejb-jar.xml. I no longer use this approach in our example code - we just use annotations. see: http://wiki.eclipse.org/EclipseLink/Examples/JPA/WebLogic_Web_Tutorial#Tutorial_Source
My session bean is stateless - I don't know how much it will help with your statefull bean managed config but here are copies of the ejb.jar configuration xml I used to use. All the resource*ref elements (see the resource-description* element) ended up in the weblogic specific weblogic-ejb-jar.xml descriptor file.
ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd]" version="3.0">
*<enterprise-beans>*
*<session>*
*<ejb-name>ApplicationService</ejb-name>*
*<ejb-class>org.eclipse.persistence.example.unified.business.ApplicationService</ejb-class>*
*<session-type>Stateless</session-type>*
+<!-- default to CMP Container managed transations not BMP -->+
+<!-- transaction-type>Bean</transaction-type-->+
+<!-- resource-env-ref id="ResourceEnvRef_1080980284303">+
+<resource-env-ref-name>localOracle10RemoteDS</resource-env-ref-name>+
+<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>+
+</resource-env-ref-->+
+<!-- resource-ref>+
+<res-ref-name>localOracle10RemoteDS</res-ref-name>+
+<res-type>javax.sql.DataSource</res-type>+
+<res-auth>Application</res-auth>+
+</resource-ref-->+
*</session>*
*</enterprise-beans>*
</ejb-jar>
weblogic-ejb-jar.xml
<?xml version="1.0"?>
<weblogic-ejb-jar>
*<weblogic-enterprise-bean>*
*<ejb-name>ApplicationService</ejb-name>*
*<stateless-session-descriptor>*
*<pool>*
*<max-beans-in-free-pool>8</max-beans-in-free-pool>*
*<initial-beans-in-free-pool>2</initial-beans-in-free-pool>*
*</pool>*
*</stateless-session-descriptor>*
{color:#008000}<resource-description>
<res-ref-name>localOracle10RemoteDS</res-ref-name>
<jndi-name>localOracle10RemoteDS</jndi-name>
</resource-description>
<resource-env-description>
<resource-env-ref-name>localOracle10RemoteDS</resource-env-ref-name>
<jndi-name>localOracle10RemoteDS</jndi-name>
</resource-env-description>
{color}+<!-- jndi-name>localOracle10RemoteDS</jndi-name-->+
*</weblogic-enterprise-bean>*
</weblogic-ejb-jar>
thank you
/michael
[http://www.eclipselink.org|http://www.eclipselink.org/]
Edited by: michael_obrien on Feb 26, 2009 9:56 AM -
Trying to write a basic EJB app w/ JPA and remote client
I'm trying to put together a simple sample app that shows a simple stateless session bean that grabs a Java EE 5 entity from the DB and sends it to the remote caller. I have an entity class called Person that simply has getId() and getName() methods.
I'm trying to get a reference to the session bean (using InitialContext.lookup()), which works. Then I try to call a method on that bean, which works as long as the type being returned is not a Person object. I've had the bean always return "Hello" and it works just fine.
Here's the bean code.
@Stateless(mappedName="RolodexSession")
public class RolodexSessionBean implements RolodexSessionRemote {
@PersistenceContext
private EntityManager em;
/** Creates a new instance of RolodexSessionBean */
public RolodexSessionBean() {
public Object getPersonByName(String name)
Query q = em.createQuery("select object(o) from Person o where o.name=:n");
q.setParameter("n",name);
List results = q.getResultList();
if (results.isEmpty())
return "emtpy";
// this would work just fine...
// return "Some string";
// but this doesn't work at all
return results.get(0);
}Here's the client code...
public class Main {
@EJB
protected RolodexSessionRemote rolodexSession;
/** Creates a new instance of Main */
public Main() throws NamingException {
Context ctx = new InitialContext();
rolodexSession = (RolodexSessionRemote)ctx.lookup("RolodexSession");
Object result = rolodexSession.getPersonByName("John Smith");
System.out.println(result);
* @param args the command line arguments
public static void main(String[] args) throws NamingException {
Main m = new Main();
}I made sure to put a Person object into my database with the name "John Smith".
The error I keep getting is...
Dec 7, 2006 4:40:29 PM com.sun.corba.ee.impl.encoding.CDRInputStream_1_0 read_value
WARNING: "IOP00810257: (MARSHAL) Could not find class"
org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 257 completed: Maybe
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.couldNotFindClass(ORBUtilSystemException.java:8309)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:984)
at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:259)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1987)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2211)
at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1219)
at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:398)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:329)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:295)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1005)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:850)
at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:255)
at com.sun.corba.ee.impl.corba.TCUtility.unmarshalIn(TCUtility.java:269)
at com.sun.corba.ee.impl.corba.AnyImpl.read_value(AnyImpl.java:558)
at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_any(CDRInputStream_1_0.java:710)
at com.sun.corba.ee.impl.encoding.CDRInputStream.read_any(CDRInputStream.java:225)
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.readAny(Util.java:449)
at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl$10.read(DynamicMethodMarshallerImpl.java:251)
at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.readResult(DynamicMethodMarshallerImpl.java:424)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:162)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:119)
at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:197)
at session.__RolodexSessionRemote_Remote_DynamicStub.getPersonByName(__RolodexSessionRemote_Remote_DynamicStub.java)
at session._RolodexSessionRemote_Wrapper.getPersonByName(session._RolodexSessionRemote_Wrapper.java)
at clientapp.Main.<init>(Main.java:33)
at clientapp.Main.main(Main.java:41)I'm running this on the Sun Java System App Server 9.0.
Any ideas?I've narrowed down the issue. The Person object that I'm trying to send back has a one-to-many relationship with Address objects. I have this all setup correctly, I think. Here's the code from Person.java that establishes that relationship.
* Holds value of property addresses.
@OneToMany(mappedBy = "person")
private List<Address> addresses;
* Getter for property addresses.
* @return Value of property addresses.
public List<Address> getAddresses() {
return this.addresses;
* Setter for property addresses.
* @param addresses New value of property addresses.
public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}In Address.java I have the other side of the relationship defined (again, correctly, I think).
IF I COMMENT OUT THIS RELATIONSHIP EVERYTHING WORKS! So, the problem seems to be related to using foreign key associations. Is there something I'm missing here? Perhaps it's related to lazy-loading of foreign keys? -
Error while running ejbc. Fatal error from EJB Compiler ---- Error while pr
Hi!
I was deploying a test application for a session bean with sun 1 studio 5 and I started getting this message while deploying.
I had tested the bean previously and I had no problems.
I found this in the sun app server 7 release notes, but I don't understand what I'm supposed to do...
"Deployment of CMP beans fails.
The following error is thrown because there are no <query-params> entries in the container-managed persistence (CMP) bean in sun-ejb-jar.xml file:
Error while running ejbc. Fatal error from EJB Compiler ---- Error while processing CMP beans.
Solution
Even if it isn't necessary for the CMP beans, add the query-params tag for finders in the sun-ejb-jar.xml file with the empty parameters."
Here is my sun-ejb-jar.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Sun ONE Application Server 7.0 EJB 2.0//EN" "http://www.sun.com/software/sunone/appserver/dtds/sun-ejb-jar_2_0-0.dtd">
<sun-ejb-jar>
<enterprise-beans>
<name>GestorDoBanco_EJBModule</name>
<ejb>
<ejb-name>Cliente</ejb-name>
<jndi-name>ejb/Cliente</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/Cliente.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>ClienteAssociadoAConta</ejb-name>
<jndi-name>ejb/ClienteAssociadoAConta</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/ClienteAssociadoAConta.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>Conta</ejb-name>
<jndi-name>ejb/Conta</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/Conta.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>GestorDoBanco</ejb-name>
<jndi-name>ejb/GestorDoBanco</jndi-name>
<pass-by-reference>false</pass-by-reference>
</ejb>
<ejb>
<ejb-name>MensagemM003</ejb-name>
<jndi-name>ejb/MensagemM003</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/MensagemM003.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>MensagemM003Rejeitada</ejb-name>
<jndi-name>ejb/MensagemM003Rejeitada</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/MensagemM003Rejeitada.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>MensagemM012</ejb-name>
<jndi-name>ejb/MensagemM012</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/MensagemM012.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>MensagemM012Rejeitada</ejb-name>
<jndi-name>ejb/MensagemM012Rejeitada</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/MensagemM012Rejeitada.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>MensagemM103</ejb-name>
<jndi-name>ejb/MensagemM103</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/MensagemM103.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>MensagemM112</ejb-name>
<jndi-name>ejb/MensagemM112</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/MensagemM112.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>Registo</ejb-name>
<jndi-name>ejb/Registo</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/Registo.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>TransaccaoConfirmada</ejb-name>
<jndi-name>ejb/TransaccaoConfirmada</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/TransaccaoConfirmada.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>TransaccaoFinalizada</ejb-name>
<jndi-name>ejb/TransaccaoFinalizada</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/TransaccaoFinalizada.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<ejb>
<ejb-name>TransaccaoIniciada</ejb-name>
<jndi-name>ejb/TransaccaoIniciada</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp>
<mapping-properties>pcImpl0/moduleComp1/Data/TransaccaoIniciada.mapping</mapping-properties>
</cmp>
<refresh-period-in-seconds>600</refresh-period-in-seconds>
</ejb>
<pm-descriptors>
<pm-descriptor>
<pm-identifier>SunONE</pm-identifier>
<pm-version>1.0</pm-version>
<pm-class-generator>com.iplanet.ias.persistence.internal.ejb.ejbc.JDOCodeGenerator</pm-class-generator>
<pm-mapping-factory>com.iplanet.ias.cmp.NullFactory</pm-mapping-factory>
</pm-descriptor>
<pm-inuse>
<pm-identifier>SunONE</pm-identifier>
<pm-version>1.0</pm-version>
</pm-inuse>
</pm-descriptors>
<cmp-resource>
<jndi-name>mysqlpmanager</jndi-name>
<default-resource-principal>
<name>bes</name>
<password>besbes</password>
</default-resource-principal>
</cmp-resource>
</enterprise-beans>
</sun-ejb-jar>
Thanks in advance for any help.
Nunohttp://docs.sun.com/source/817-2175-10/decmp.html
Please go to the above docs and look thru the examples given in it.
Example 2
This query returns all products in a specified price range. It defines two query parameters which are the lower and upper bound for the price: double low, double high. The filter compares the query parameters with the price field:
"low < price && price < high"
The finder element of the sun-ejb-jar.xml file would look like this:
<finder>
<method-name>findInRange</method-name>
<query-params>double low, double high</query-params>
<query-filter>low < price && price <
high</query-filter
</finder>
I hope this hepls. In your case u just have to make it null. -
Error while running EJB from java client on JBOSS
Hi
As i am new to EJB i have created a helloworld application in ejb which is working fine when i try to call it from servlet but when i try to invoke the same ejb from java client (i.e from diff jvm) on jboss i got the following error:
javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:1099 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused]]]
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1399)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:579)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.gl.TestClient.main(TestClient.java:39)
Caused by: javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused]]
at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:254)
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1370)
... 4 more
Caused by: javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused]
at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:228)
... 5 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:266)
at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:69)
at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:62)
at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:224)
... 5 more
Following is my code:
Home Interface:
package com.gl;
import javax.ejb.CreateException;
public interface testHome extends EJBHome {
String JNDI_NAME = "testBean";
public test create()
throws java.rmi.RemoteException,CreateException;
Remote Interface:
package com.gl;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
public interface test extends EJBObject {
public String welcomeMessage() throws RemoteException;
Bean:
package com.gl;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class testbean implements SessionBean {
public void ejbActivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
public void ejbPassivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
public void ejbRemove() throws EJBException, RemoteException {
// TODO Auto-generated method stub
public void setSessionContext(SessionContext arg0) throws EJBException,
RemoteException {
// TODO Auto-generated method stub
public void ejbCreate(){}
public String welcomeMessage(){
return "Welcome to the World of EJB";
ejb-jar.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>testBean</ejb-name>
<home>com.gl.testHome</home>
<remote>com.gl.test</remote>
<ejb-class>com.gl.testbean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
jboss.xml:
<?xml version='1.0' ?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 3.2//EN" "http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd">
<jboss>
<enterprise-beans>
<entity>
<ejb-name>testBean</ejb-name>
<jndi-name>testBean</jndi-name>
</entity>
</enterprise-beans>
</jboss>
Client code:
package com.gl;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
public class TestClient {
public static void main(String[] args) throws Exception{
try{
/* Properties props=new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
props.put(Context.PROVIDER_URL, "jnp://localhost:1099");
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
props.put(Context.PROVIDER_URL, "localhost:1099");
System.out.println("Properties ok");
//env.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.naming.HttpNamingContextFactory");
//env.put(Context.PROVIDER_URL,"http://localhost:8080");
//env.put(Context.SECURITY_PRINCIPAL, "");
//env.put(Context.SECURITY_CREDENTIALS, "");
Context ctx=new InitialContext(props);
System.out.println("context ok");
//testHome home = (testHome)ctx.lookup("testBean");
Object obj = ctx.lookup ("testBean");
System.out.println("ojb = " + obj);
testHome ejbHome = (testHome)PortableRemoteObject.narrow(obj,testHome.class);
test ejbObject = ejbHome.create();
String message = ejbObject.welcomeMessage();
System.out.println("home ok");
System.out.println("remote ok");
System.out.println(message);
catch(Exception e){e.printStackTrace();}
I am able to successfully deployed my ejb on JBOSS but i m getting above error when i am trying to invoke ejb from java client.
kindly suggest me something to solve this issue.
Regards
Gagan
Edited by: Gagan2914 on Aug 26, 2008 3:28 AMIs it a remote lookup? Then maybe this will help:
[http://wiki.jboss.org/wiki/JBoss42FAQ]
- Roy -
Error while deploying WC application: Unable to deploy EJB
Hi All,
we are getting the below error quite frequently, whenever we deploy the application to server:
[03:35:14 AM] Weblogic Server Exception: weblogic.application.ModuleException: Exception preparing module: EJBModule(CAWrapperEJB.jar)
Unable to deploy EJB: CAService from CAWrapperEJB.jar:
[EJB:011055]Error deploying the EJB 'CAService(Application: CAPortal, EJBComponent: CAWrapperEJB.jar)', the JNDI name 'CAPortal-CAPModel-CAService2#com.lexisnexis.service.CAService' is already in use. You must set a different JNDI name in the weblogic-ejb-jar.xml deployment descriptor or corresponding annotation for this EJB before it can be deployed.
[03:35:14 AM] Caused by: java.lang.Throwable: Substituted for missing class [EJB - 11055]Error deploying the EJB 'CAService(Application: CAPortal, EJBComponent: CAWrapperEJB.jar)', the JNDI name 'CAPortal-CAPModel-CAService2#com.lexisnexis.service.CAnService' is already in use. You must set a different JNDI name in the weblogic-ejb-jar.xml deployment descriptor or corresponding annotation for this EJB before it can be deployed.
[03:35:14 AM] See server logs or server console for more details.
-to solve this issue we just delete the cache and restart the Managed server.
Please tell me what is the cause of this error and how can we fix it permanently, as restarting the server everytime is not very convenient.
TIA,
BobThe content of "weblogic-ejb-jar.xml" present in code is:
<?xml version = '1.0' encoding = 'windows-1252'?>
<weblogic-ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-ejb-jar http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd"
xmlns="http://www.bea.com/ns/weblogic/weblogic-ejb-jar">
</weblogic-ejb-jar> -
Oracle Application Server 10.1.3 EJB Deployment Error
Hi ,
I am keep getting following error when try to deploy my ear files in 10.1.3. standalone env.
my ejb-jar.xml looks is
<?xml version = '1.0' encoding = 'windows-1252'?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
<enterprise-beans>
<session>
<description>Session Facade Bean ( Stateless )</description>
<display-name>FacadeBean</display-name>
<ejb-name>FacadeBean</ejb-name>
<home>com.sjrwmd.dmsap.ejb.FacadeBeanHome</home>
<remote>com.sjrwmd.dmsap.ejb.FacadeBeanRemote</remote>
<ejb-class>com.sjrwmd.dmsap.ejb.FacadeBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>FacadeBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Your help appriciated
Thank You
Jigar
2006-02-08 17:13:40.670 NOTIFICATION JMS Router is initiating ...
2006-02-08 17:13:55.702 NOTIFICATION Application Deployer for dmsap STARTS.
2006-02-08 17:13:55.733 NOTIFICATION Copy the archive to C:\JDev1013\j2ee\home\applications\dmsap.ear
2006-02-08 17:13:55.733 NOTIFICATION Initialize ./applications\dmsap.ear begins...
2006-02-08 17:13:55.733 NOTIFICATION Removing everything under: C:\JDev1013\j2ee\home\.\applications\dmsap
2006-02-08 17:13:55.733 NOTIFICATION Auto-unpacking C:\JDev1013\j2ee\home\.\applications\dmsap.ear...
2006-02-08 17:13:55.733 NOTIFICATION Unpacking dmsap.ear
2006-02-08 17:13:55.733 NOTIFICATION Unjar C:\JDev1013\j2ee\home\.\applications\dmsap.ear in C:\JDev1013\j2ee\home\.\applications\dmsap
2006-02-08 17:13:55.998 NOTIFICATION Done unpacking dmsap.ear
2006-02-08 17:13:55.998 NOTIFICATION Finished auto-unpacking C:\JDev1013\j2ee\home\.\applications\dmsap.ear
2006-02-08 17:13:56.045 NOTIFICATION Auto-unpacking C:\JDev1013\j2ee\home\applications\dmsap\dmsap-web.war...
2006-02-08 17:13:56.045 NOTIFICATION Unpacking dmsap-web.war
2006-02-08 17:13:56.045 NOTIFICATION Unjar C:\JDev1013\j2ee\home\applications\dmsap\dmsap-web.war in C:\JDev1013\j2ee\home\applications\dmsap\dmsap-web
2006-02-08 17:13:56.498 NOTIFICATION Done unpacking dmsap-web.war
2006-02-08 17:13:56.498 NOTIFICATION Finished auto-unpacking C:\JDev1013\j2ee\home\applications\dmsap\dmsap-web.war
2006-02-08 17:13:56.498 NOTIFICATION Auto-unpacking C:\JDev1013\j2ee\home\applications\dmsap\uploaddirapp.jar...
2006-02-08 17:13:56.498 NOTIFICATION Unpacking uploaddirapp.jar
2006-02-08 17:13:56.498 NOTIFICATION Unjar C:\JDev1013\j2ee\home\applications\dmsap\uploaddirapp.jar in C:\JDev1013\j2ee\home\applications\dmsap\uploaddirapp
2006-02-08 17:13:56.748 NOTIFICATION Done unpacking uploaddirapp.jar
2006-02-08 17:13:56.748 NOTIFICATION Finished auto-unpacking C:\JDev1013\j2ee\home\applications\dmsap\uploaddirapp.jar
2006-02-08 17:13:56.748 NOTIFICATION Auto-unpacking C:\JDev1013\j2ee\home\applications\dmsap\downloadfileapp.jar...
2006-02-08 17:13:56.764 NOTIFICATION Unpacking downloadfileapp.jar
2006-02-08 17:13:56.764 NOTIFICATION Unjar C:\JDev1013\j2ee\home\applications\dmsap\downloadfileapp.jar in C:\JDev1013\j2ee\home\applications\dmsap\downloadfileapp
2006-02-08 17:13:56.967 NOTIFICATION Done unpacking downloadfileapp.jar
2006-02-08 17:13:56.967 NOTIFICATION Finished auto-unpacking C:\JDev1013\j2ee\home\applications\dmsap\downloadfileapp.jar
2006-02-08 17:13:56.983 NOTIFICATION Initialize ./applications\dmsap.ear ends...
2006-02-08 17:13:56.983 NOTIFICATION Starting application : dmsap
2006-02-08 17:13:56.983 NOTIFICATION Initializing ClassLoader(s)
2006-02-08 17:13:56.983 NOTIFICATION Initializing EJB container
2006-02-08 17:13:56.983 NOTIFICATION Loading connector(s)
2006-02-08 17:13:57.295 NOTIFICATION Starting up resource adapters
2006-02-08 17:13:57.295 NOTIFICATION Processing EJB module: dmsap-ejb.jar
2006-02-08 17:13:57.405 ERROR J2EE EJB3027 [dmsap] An error occured deploying EJB module: com.evermind.server.ejb.deployment.InvalidEJBAssemblyException: [dmsap:dmsap-ejb:FacadeBean] - Unable to load ejb-class com.sjrwmd.dmsap.ejb.FacadeBean, see section 23.2 of the EJB 2.1 specificationoracle.classloader.util.AnnotatedClassFormatError: com.sjrwmd.dmsap.ejb.FacadeBean
Invalid class: com.sjrwmd.dmsap.ejb.FacadeBean
Loader: dmsap.root:0.0.0
Code-Source: /C:/JDev1013/j2ee/home/applications/dmsap/dmsap-ejb.jar
Configuration: <ejb> in C:\JDev1013\j2ee\home\applications\dmsap
Dependent class: com.evermind.server.ejb.deployment.BeanDescriptor
Loader: oc4j:10.1.3
Code-Source: /C:/JDev1013/j2ee/home/lib/oc4j-internal.jar
Configuration: <code-source> in META-INF/boot.xml in C:\JDev1013\j2ee\home\oc4j.jar
2006-02-08 17:13:57.405 NOTIFICATION application : dmsap is in failed state
Feb 8, 2006 5:13:57 PM com.evermind.server.Application setConfig
WARNING: Application: dmsap is in failed state as initialization failedjava.lang.InstantiationException: Error initializing ejb-modules: [dmsap:dmsap-ejb:FacadeBean] - Unable to load ejb-class com.sjrwmd.dmsap.ejb.FacadeBean, see section 23.2 of the EJB 2.1 specificationoracle.classloader.util.AnnotatedClassFormatError: com.sjrwmd.dmsap.ejb.FacadeBean
Invalid class: com.sjrwmd.dmsap.ejb.FacadeBean
Loader: dmsap.root:0.0.0
Code-Source: /C:/JDev1013/j2ee/home/applications/dmsap/dmsap-ejb.jar
Configuration: <ejb> in C:\JDev1013\j2ee\home\applications\dmsap
Dependent class: com.evermind.server.ejb.deployment.BeanDescriptor
Loader: oc4j:10.1.3
Code-Source: /C:/JDev1013/j2ee/home/lib/oc4j-internal.jar
Configuration: <code-source> in META-INF/boot.xml in C:\JDev1013\j2ee\home\oc4j.jar
06/02/08 17:13:57 oracle.oc4j.admin.internal.DeployerException: java.lang.InstantiationException: Error initializing ejb-modules: [dmsap:dmsap-ejb:FacadeBean] - Unable to load ejb-class com.sjrwmd.dmsap.ejb.FacadeBean, see section 23.2 of the EJB 2.1 specificationoracle.classloader.util.AnnotatedClassFormatError: com.sjrwmd.dmsap.ejb.FacadeBean
Invalid class: com.sjrwmd.dmsap.ejb.FacadeBean
Loader: dmsap.root:0.0.0
Code-Source: /C:/JDev1013/j2ee/home/applications/dmsap/dmsap-ejb.jar
Configuration: <ejb> in C:\JDev1013\j2ee\home\applications\dmsap
Dependent class: com.evermind.server.ejb.deployment.BeanDescriptor
Loader: oc4j:10.1.3
Code-Source: /C:/JDev1013/j2ee/home/lib/oc4j-internal.jar
Configuration: <code-source> in META-INF/boot.xml in C:\JDev1013\j2ee\home\oc4j.jar
06/02/08 17:13:57 at oracle.oc4j.admin.internal.ApplicationDeployer.addApplication(ApplicationDeployer.java:510)
06/02/08 17:13:57 at oracle.oc4j.admin.internal.ApplicationDeployer.doDeploy(ApplicationDeployer.java:191)
06/02/08 17:13:57 at oracle.oc4j.admin.internal.DeployerBase.execute(DeployerBase.java:93)
06/02/08 17:13:57 at oracle.oc4j.admin.jmx.server.mbeans.deploy.OC4JDeployerRunnable.doRun(OC4JDeployerRunnable.java:52)
06/02/08 17:13:57 at oracle.oc4j.admin.jmx.server.mbeans.deploy.DeployerRunnable.run(DeployerRunnable.java:81)
06/02/08 17:13:57 at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
06/02/08 17:13:57 at java.lang.Thread.run(Thread.java:534)
06/02/08 17:13:57 Caused by: java.lang.InstantiationException: Error initializing ejb-modules: [dmsap:dmsap-ejb:FacadeBean] - Unable to load ejb-class com.sjrwmd.dmsap.ejb.FacadeBean, see section 23.2 of the EJB 2.1 specificationoracle.classloader.util.AnnotatedClassFormatError: com.sjrwmd.dmsap.ejb.FacadeBean
Invalid class: com.sjrwmd.dmsap.ejb.FacadeBean
Loader: dmsap.root:0.0.0
Code-Source: /C:/JDev1013/j2ee/home/applications/dmsap/dmsap-ejb.jar
Configuration: <ejb> in C:\JDev1013\j2ee\home\applications\dmsap
Dependent class: com.evermind.server.ejb.deployment.BeanDescriptor
Loader: oc4j:10.1.3
Code-Source: /C:/JDev1013/j2ee/home/lib/oc4j-internal.jar
Configuration: <code-source> in META-INF/boot.xml in C:\JDev1013\j2ee\home\oc4j.jar
06/02/08 17:13:57 at com.evermind.server.ejb.EJBContainer.postInit(EJBContainer.java:1056)
06/02/08 17:13:57 at com.evermind.server.ApplicationStateRunning.initializeApplication(ApplicationStateRunning.java:210)
06/02/08 17:13:57 at com.evermind.server.Application.setConfig(Application.java:391)
06/02/08 17:13:57 at com.evermind.server.Application.setConfig(Application.java:308)
06/02/08 17:13:57 at com.evermind.server.ApplicationServer.addApplication(ApplicationServer.java:1771)
06/02/08 17:13:57 at oracle.oc4j.admin.internal.ApplicationDeployer.addApplication(ApplicationDeployer.java:507)
06/02/08 17:13:57 ... 6 more
06/02/08 17:13:57 Caused by: com.evermind.server.ejb.deployment.InvalidEJBAssemblyException: [dmsap:dmsap-ejb:FacadeBean] - Unable to load ejb-class com.sjrwmd.dmsap.ejb.FacadeBean, see section 23.2 of the EJB 2.1 specificationoracle.classloader.util.AnnotatedClassFormatError: com.sjrwmd.dmsap.ejb.FacadeBean
Invalid class: com.sjrwmd.dmsap.ejb.FacadeBean
Loader: dmsap.root:0.0.0
Code-Source: /C:/JDev1013/j2ee/home/applications/dmsap/dmsap-ejb.jar
Configuration: <ejb> in C:\JDev1013\j2ee\home\applications\dmsap
Dependent class: com.evermind.server.ejb.deployment.BeanDescriptor
Loader: oc4j:10.1.3
Code-Source: /C:/JDev1013/j2ee/home/lib/oc4j-internal.jar
Configuration: <code-source> in META-INF/boot.xml in C:\JDev1013\j2ee\home\oc4j.jar
06/02/08 17:13:57 at com.evermind.server.ejb.exception.ValidationExceptions.unableToLoadEJBClass(ValidationExceptions.java:36)
06/02/08 17:13:57 at com.evermind.server.ejb.deployment.BeanDescriptor.initialize(BeanDescriptor.java:298)
06/02/08 17:13:57 at com.evermind.server.ejb.deployment.ExposableBeanDescriptor.initialize(ExposableBeanDescriptor.java:158)
06/02/08 17:13:57 at com.evermind.server.ejb.deployment.SessionBeanDescriptor.initialize(SessionBeanDescriptor.java:190)
06/02/08 17:13:57 at com.evermind.server.ejb.deployment.EJBPackage.initialize(EJBPackage.java:814)
06/02/08 17:13:57 at com.evermind.server.ejb.EJBContainer.postInit(EJBContainer.java:855)
06/02/08 17:13:57 ... 11 more
06/02/08 17:13:57 Caused by: oracle.classloader.util.AnnotatedClassFormatError: com.sjrwmd.dmsap.ejb.FacadeBean
Invalid class: com.sjrwmd.dmsap.ejb.FacadeBean
Loader: dmsap.root:0.0.0
Code-Source: /C:/JDev1013/j2ee/home/applications/dmsap/dmsap-ejb.jar
Configuration: <ejb> in C:\JDev1013\j2ee\home\applications\dmsap
Dependent class: com.evermind.server.ejb.deployment.BeanDescriptor
Loader: oc4j:10.1.3
Code-Source: /C:/JDev1013/j2ee/home/lib/oc4j-internal.jar
Configuration: <code-source> in META-INF/boot.xml in C:\JDev1013\j2ee\home\oc4j.jar
06/02/08 17:13:57 at oracle.classloader.PolicyClassLoader.defineClass(PolicyClassLoader.java:2268)
06/02/08 17:13:57 at oracle.classloader.PolicyClassLoader.findLocalClass(PolicyClassLoader.java:1457)
06/02/08 17:13:57 at oracle.classloader.SearchPolicy$FindLocal.getClass(SearchPolicy.java:167)
06/02/08 17:13:57 at oracle.classloader.SearchSequence.getClass(SearchSequence.java:119)
06/02/08 17:13:57 at oracle.classloader.PolicyClassLoader.internalLoadClass(PolicyClassLoader.java:1660)
06/02/08 17:13:57 at oracle.classloader.PolicyClassLoader.loadClass(PolicyClassLoader.java:1621)
06/02/08 17:13:57 at oracle.classloader.PolicyClassLoader.loadClass(PolicyClassLoader.java:1606)
06/02/08 17:13:57 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
06/02/08 17:13:57 at java.lang.Class.forName0(Native Method)
06/02/08 17:13:57 at java.lang.Class.forName(Class.java:219)
06/02/08 17:13:57 at com.evermind.server.ejb.deployment.BeanDescriptor.initialize(BeanDescriptor.java:296)
06/02/08 17:13:57 ... 15 more
06/02/08 17:13:57 Caused by: java.lang.UnsupportedClassVersionError: com.sjrwmd.dmsap.ejb.FacadeBean
06/02/08 17:13:57 at java.lang.ClassLoader.defineClass0(Native Method)
06/02/08 17:13:57 at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
06/02/08 17:13:57 at oracle.classloader.PolicyClassLoader.defineClass(PolicyClassLoader.java:2224)
06/02/08 17:13:57 ... 25 more
2006-02-08 17:13:57.545 NOTIFICATION Application Deployer for dmsap FAILED.
2006-02-08 17:13:57.545 NOTIFICATION Application UnDeployer for dmsap STARTS.
2006-02-08 17:13:59.045 NOTIFICATION Removing all web binding(s) for application dmsap from all web site(s)
2006-02-08 17:13:59.795 NOTIFICATION Application UnDeployer for dmsap COMPLETES.
2006-02-08 17:13:59.795 WARNING java.lang.InstantiationException: Error initializing ejb-modules: [dmsap:dmsap-ejb:FacadeBean] - Unable to load ejb-class com.sjrwmd.dmsap.ejb.FacadeBean, see section 23.2 of the EJB 2.1 specificationoracle.classloader.util.AnnotatedClassFormatError: com.sjrwmd.dmsap.ejb.FacadeBean
Invalid class: com.sjrwmd.dmsap.ejb.FacadeBean
Loader: dmsap.root:0.0.0
Code-Source: /C:/JDev1013/j2ee/home/applications/dmsap/dmsap-ejb.jar
Configuration: <ejb> in C:\JDev1013\j2ee\home\applications\dmsap
Dependent class: com.evermind.server.ejb.deployment.BeanDescriptor
Loader: oc4j:10.1.3
Code-Source: /C:/JDev1013/j2ee/home/lib/oc4j-internal.jar
Configuration: <code-source> in META-INF/boot.xml in C:\JDev1013\j2ee\home\oc4j.jarA point of clarification: Using JDK 1.5, it compiles and "tries" to start, but then gives this error : Unable to load ejb-class com.MyTestEJB see section 23.2 of the EJB 2.1 specificationjava.lang.ExceptionInInitializerError: java.lang.NullPointerException
There are other EJB which are deploying fine.
I really can't tell why one is deploying but this one is not.
Thanks
Maybe you are looking for
-
HP Photosmart D110 Series getting error message when connecting to web services
Hello guys! Hope someone can help. We have a HP Photosmart D110 series that is a couple years old. I am trying to get it connected to the web services feature for my wife. When we first got the printer it connected with no problems. When I go and cli
-
IPod Classic will not restore because firmware file cannot be found
It was suggested by an Apple store agent that I should restore my ipod to stop a an issue with tracks skipping that I suspect are related to bad sectors on the disk as all the songs play ok on my macbook. However, when I try to restore I get an error
-
How to pass pageFlowScope variable value as bind variable for VO
Hi, I have one fixed lov (not based on datasource), if i select any value in that lov i want to pass this value to a pageFlowScope variable. After this i want to use this value as bind variable for VO. whenever the vo executes thereafter this bind va
-
Approver gets refreshed after the contract is released
Hi All, I am facing a problem while creating GOA i have activated the one step approval workflow WS 14000088 and have the agent assignment based on standard roles. I can see the approver picked up correctly in approval preview but when i release the
-
How can i change my e mail so i can virify my i clould
i have wrong e mail in i clould settings so i cant recieve e mail to virify