CMP EJBs for Weblogic 6.1
Hi All
It seems that when I use the functionality to build a CMP EJB (an EJB that is automatically built based on an Oracle table) the deployment descriptors are missing lots of info so it it not possible to deploy to Weblogic (6.1).
I'm assuming the functionality intended is that it will be possible to automatically generate CMP EJBs from Oracle and deploy them directly to a iAS/Weblogic etc....
Session Beans seem OK.
Anyone got any thoughts on this?
Dave
For Weblogic - Users can develop session beans add weblogic-ejb-jar.xml and
deploy to a WebLogic connection.
If the project doesn't have a weblogic-ejb-jar.xml and a connection type of Weblogic is choosen for deployment , weblogic-ejb-jar.xml is automatically generated for the EJBs and wrapped in the EJB.jar before deploying to WLS.
JDeveloper provides Deployment descriptor editors for editing weblogic-ejb-jar.xml thru UI panels. This is very convinient rather than hand editing the XML.
Currently you would have to add Weblogic cmp specific deployment descriptor into the project and make it part of the EJB.jar during the assembly process (i.e when you create the deployment profile).
raghu
JDev Team
Similar Messages
-
CMP support for Weblogic 8 in Oracle 10g?
Is the CMP support for Weblogic 8 included in Oracle Toplink 10g?
I am using 10g and have problem compiling CMP EJB for WL 8.1. I got the following exception:
Exception in thread "main" java.lang.NoSuchMethodError: weblogic.ejb20.persistence.spi.RoleSource.getName()Ljava/lang/String;
at oracle.toplink.internal.ejb.cmp.wls.WlsDescriptorBuilder.getEjbNameForRoleSource(WlsDescriptorBuilder.java:219)
at oracle.toplink.internal.ejb.cmp.wls.WlsDescriptorBuilder.buildRelationshipRoleDescriptor(WlsDescriptorBuilder.java:206)
at oracle.toplink.internal.ejb.cmp.wls.WlsDescriptorBuilder.buildRelationshipDescriptors(WlsDescriptorBuilder.java:177)
at oracle.toplink.internal.ejb.cmp.wls.WlsDescriptorBuilder.buildRelationships(WlsDescriptorBuilder.java:157)
at oracle.toplink.internal.ejb.cmp.api.impl.DescriptorBuilder.buildDescriptor(DescriptorBuilder.java:153)
at oracle.toplink.internal.ejb.cmp.wls.WlsDescriptorBuilder.addOldDescriptors(WlsDescriptorBuilder.java:33)
at oracle.toplink.internal.ejb.cmp.wls.WlsProjectDeployment.convertOldEntityDescriptors(WlsProjectDeployment.java:65)
at oracle.toplink.internal.ejb.cmp.PersistenceManagerBase.initialize(PersistenceManagerBase.java:72)
at oracle.toplink.internal.ejb.cmp.wls.WlsCMPDeployer.initializePersistenceManager(WlsCMPDeployer.java:135)
at weblogic.ejb20.deployer.CMPInfoImpl.setup(CMPInfoImpl.java:112)
at weblogic.ejb20.ejbc.EJB20CMPCompiler.generatePersistenceSources(EJB20CMPCompiler.java:64)
at weblogic.ejb20.ejbc.EJBCompiler.doCompile(EJBCompiler.java:245)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:476)
at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:397)
at weblogic.ejbc20.runBody(ejbc20.java:519)
at weblogic.utils.compiler.Tool.run(Tool.java:146)
at weblogic.utils.compiler.Tool.run(Tool.java:103)
at weblogic.ejbc.main(ejbc.java:29)
I looked in the weblogic.ejb20.persistence.spi.RoleSource class and see the method getEjbName, but no method getName found. What am I missing ? Thanks
-Tuan -
Weblogic Deployment Descriptor for CMP EJB
Hi all,
Am new to EJB, CMP. Pls help me how to write deployment descriptors for the CMP EJB for Weblogic.
Give me the list of the Deployment descriptors needed and also pls give me some samples
thanks in advance
rgds
Ravi BharathiThe easiest way is to go through some tutorial or refer the code samples. If you have installed weblogic, there are examples provided in the weblogic installation folder itself for each type of bean. Basically for cmp you have to provide the table names and mapping between the class variables to db fields in weblogic_cmp_rdbms.xml deployment descriptor.
-
DTD Doctype for weblogic-ejb-jar.xml
Hi,
I have a small question about XML DOCTYPE DEFINITION used with XML descriptors.
What should be the DOCTYPE HEADER for weblogic 6.0 sp2 & EJB 1.1?
Currently, i'm using :
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems,
Inc.//DTD WebLogic 5.1.0 EJB//EN''http://www.bea.com/servers/wls510/ dtd/weblogic-ejb-jar.dtd'>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans
1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
These are working fine. But my question is, why should we use DTDs of WLS5.1 even
if we are using WL6.0?
Note that we intend to use EJB1.1 specification.
Regards,
AmitThere is a new 6.0 DTD for CMP 1.1 entity beans to take advantage of new
features (such as 2pc). Search the CMP EJB newsgroup for a post from me
about 1 or 2 months ago summarizing the topic.
Otherwise the old DTDs seem to work just fine.
Peace,
Cameron Purdy
Tangosol Inc.
<< Tangosol Server: How Weblogic applications are customized >>
<< Download now from http://www.tangosol.com/download.jsp >>
"Amit Vaidya" <[email protected]> wrote in message
news:[email protected]..
>
Hi,
I have a small question about XML DOCTYPE DEFINITION used with XMLdescriptors.
>
What should be the DOCTYPE HEADER for weblogic 6.0 sp2 & EJB 1.1?
Currently, i'm using :
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems,
Inc.//DTD WebLogic 5.1.0 EJB//EN''http://www.bea.com/servers/wls510/
dtd/weblogic-ejb-jar.dtd'>
>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD EnterpriseJavaBeans
1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
These are working fine. But my question is, why should we use DTDs ofWLS5.1 even
if we are using WL6.0?
Note that we intend to use EJB1.1 specification.
Regards,
Amit -
Additional field in join table for CMP EJB
Hello,
I'm trying to perform this task using CMP entity beans:
The entity A has a CMR relation of cardinality m-n with entity B (bidirectional) (This is working fine).
I want to add a parameter to the relation.
Ex : When I find that A1 is linked to B1, I need to perform "x" times an action. x would be my parameter, and I would have kept this parameter as an additional column in the join table A_TO_B.
Could anyone provide an example of how to perform this with CMP EJB?
NOTE: I'm using OC4J 10g 9.0.4 standalone (and cannot change my version).
Thanks
TanguyManohar,
You need to create an append structure for table VBAP (for example ZAVBAP) using SE11. In this structure you create your ZZ fields. If you need a non-SAP domain/data element for your field then you need to create it first using the same transaction and activate it. Attach ZAVBAP to VBAP so the SE11 shows:
.APPEND in the Fields column and
ZAVBAP in the Field type column.
Your ZZ fields will be shown automatically.
When you have finished then activate your ZAVBAP structure. You will notice when you go VA01 (for example) that a lot of programs are being recompiled. Don't worry. It will be ok.
The user-exit screen number for items is 8459 (in program SAPMV45A).
Thanks,
Wojtek -
Ejb-jar.xml中的EJB QL和weblogic-cmp-rdbms-jar.xml中的WLQL
我想问一下,在ejb-jar.xml文件中用EJB QL查询语言定义了相应的EJB QL查询语句后,在weblogic-cmp-rdbms-jar.xml文件中还需不需要用wlql语言来定义相应的查询语句呀?
在Weblogic6.0中,如果你需要利用EJB2.0的EJBQL语言所不提供的
ORDERBY排序功能,那么这时候可以在weblogic-cmp-rdbms-jar.xml中用WLQL覆盖它,一般情况下,在ejb-jar.xml中声明一个EJBQL方法就可以了,WLQL可有可无。 -
Deployment plan fails for weblogic-ejb-jar.xml
FILE FOR PLAN TO ACT ON:
application.ear\ReferenceTableSession.jar\META-INF\weblogic-ejb-jar.xml
<?xml version="1.0" encoding="utf-8"?>
<weblogic-ejb-jar xmlns="http://www.bea.com/ns/weblogic/10.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/10.0 http://www.bea.com/ns/weblogic/10.0/weblogic-ejb-jar.xsd">
<weblogic-enterprise-bean>
<ejb-name>referencetablesession</ejb-name>
<stateless-session-descriptor>
<pool>
<max-beans-in-free-pool>100</max-beans-in-free-pool>
<initial-beans-in-free-pool>0</initial-beans-in-free-pool>
</pool>
<stateless-clustering>
<stateless-bean-is-clusterable>true</stateless-bean-is-clusterable>
</stateless-clustering>
</stateless-session-descriptor>
<transaction-descriptor>
<trans-timeout-seconds>150</trans-timeout-seconds>
</transaction-descriptor>
<enable-call-by-reference>true</enable-call-by-reference>
<jndi-name>XYZ_ejb/ProviderMaintSvc/referencetablesession</jndi-name>
</weblogic-enterprise-bean>
<transaction-isolation>
<isolation-level>TransactionReadCommitted</isolation-level>
<method>
<ejb-name>referencetablesession</ejb-name>
<method-name>*</method-name>
</method>
</transaction-isolation>
</weblogic-ejb-jar>
DEPLOYMENT PLAN:
<?xml version='1.0' encoding='utf-8'?>
<deployment-plan xmlns="http://www.bea.com/ns/weblogic/deployment-plan"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/deployment-plan http://www.bea.com/ns/weblogic/deployment-plan/1.0/deployment-plan.xsd">
<application-name>application.ear</application-name>
<variable-definition>
<variable>
<name>VAR_referencetablesession</name>
<value>ejb/ProviderClaimOnlineSvc/referencetablesession</value>
</variable>
</variable-definition>
<module-override>
<module-name>ReferenceTableSession.jar</module-name>
<module-type>ejb</module-type>
<module-descriptor external="false">
<root-element>weblogic-ejb-jar</root-element>
<uri>META-INF/weblogic-ejb-jar.xml</uri>
<variable-assignment>
<name>VAR_referencetablesession</name>
<xpath>/weblogic-ejb-jar/weblogic-enterprise-bean/\[ejb-name="referencetablesession"\]/jndi-name</xpath>
<operation>replace</operation>
</variable-assignment>
</module-descriptor>
</module-override>
<config-root>servers/AdminServer/upload</config-root>
</deployment-plan>
ERROR FROM CONSOLE:
Message icon - Error An error occurred during activation of changes, please see the log for details.
Message icon - Error Exception preparing module: EJBModule(ReferenceTableSession.jar) [EJB:011023]An error occurred while reading the deployment descriptor. The error was: Unmarshaller failed.
Message icon - Error Bean already exists: "[email protected]f2(/WeblogicEnterpriseBeans[referencetablesession])"
ERROR FROM LOG:
<Oct 2, 2009 1:08:25 PM CDT> <Error> <J2EE> <BEA-160197> <Unable to load descriptor servers/ms34/tmp/_WL_user/ProviderClaimOnlineSvc/y1anoa/ReferenceTableSession.jar/META-INF/weblogic-ejb-jar.xml of module ReferenceTableSession.jar. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:152)
at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:306)
at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:788)
at weblogic.application.descriptor.AbstractDescriptorLoader2.mergeDescriptorBeanWithPlan(AbstractDescriptorLoader2.java:703)
at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:776)
at weblogic.ejb.spi.EjbJarDescriptor.parseWeblogicEjbJarBean(EjbJarDescriptor.java:160)
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processWLEjbJarXMLWithSchema(EjbDescriptorReaderImpl.java:719)
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.parseWLDD(EjbDescriptorReaderImpl.java:541)
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processWeblogicEjbJarXML(EjbDescriptorReaderImpl.java:380)
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.createReadOnlyDescriptorFromJarFile(EjbDescriptorReaderImpl.java:191)
at weblogic.ejb.spi.EjbDescriptorFactory.createReadOnlyDescriptorFromJarFile(EjbDescriptorFactory.java:93)
at weblogic.ejb.container.deployer.EJBModule.loadEJBDescriptor(EJBModule.java:1198)
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:380)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.operations.RedeployOperation.createAndPrepareContainer(RedeployOperation.java:98)
at weblogic.deploy.internal.targetserver.operations.RedeployOperation.doPrepare(RedeployOperation.java:122)
Thanks,
Rob
Edited by: user11337024 on Oct 5, 2009 2:31 PMFILE FOR PLAN TO ACT ON:
application.ear\ReferenceTableSession.jar\META-INF\weblogic-ejb-jar.xml
<?xml version="1.0" encoding="utf-8"?>
<weblogic-ejb-jar xmlns="http://www.bea.com/ns/weblogic/10.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/10.0 http://www.bea.com/ns/weblogic/10.0/weblogic-ejb-jar.xsd">
<weblogic-enterprise-bean>
<ejb-name>referencetablesession</ejb-name>
<stateless-session-descriptor>
<pool>
<max-beans-in-free-pool>100</max-beans-in-free-pool>
<initial-beans-in-free-pool>0</initial-beans-in-free-pool>
</pool>
<stateless-clustering>
<stateless-bean-is-clusterable>true</stateless-bean-is-clusterable>
</stateless-clustering>
</stateless-session-descriptor>
<transaction-descriptor>
<trans-timeout-seconds>150</trans-timeout-seconds>
</transaction-descriptor>
<enable-call-by-reference>true</enable-call-by-reference>
<jndi-name>XYZ_ejb/ProviderMaintSvc/referencetablesession</jndi-name>
</weblogic-enterprise-bean>
<transaction-isolation>
<isolation-level>TransactionReadCommitted</isolation-level>
<method>
<ejb-name>referencetablesession</ejb-name>
<method-name>*</method-name>
</method>
</transaction-isolation>
</weblogic-ejb-jar>
DEPLOYMENT PLAN:
<?xml version='1.0' encoding='utf-8'?>
<deployment-plan xmlns="http://www.bea.com/ns/weblogic/deployment-plan"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/deployment-plan http://www.bea.com/ns/weblogic/deployment-plan/1.0/deployment-plan.xsd">
<application-name>application.ear</application-name>
<variable-definition>
<variable>
<name>VAR_referencetablesession</name>
<value>ejb/ProviderClaimOnlineSvc/referencetablesession</value>
</variable>
</variable-definition>
<module-override>
<module-name>ReferenceTableSession.jar</module-name>
<module-type>ejb</module-type>
<module-descriptor external="false">
<root-element>weblogic-ejb-jar</root-element>
<uri>META-INF/weblogic-ejb-jar.xml</uri>
<variable-assignment>
<name>VAR_referencetablesession</name>
<xpath>/weblogic-ejb-jar/weblogic-enterprise-bean/\[ejb-name="referencetablesession"\]/jndi-name</xpath>
<operation>replace</operation>
</variable-assignment>
</module-descriptor>
</module-override>
<config-root>servers/AdminServer/upload</config-root>
</deployment-plan>
ERROR FROM CONSOLE:
Message icon - Error An error occurred during activation of changes, please see the log for details.
Message icon - Error Exception preparing module: EJBModule(ReferenceTableSession.jar) [EJB:011023]An error occurred while reading the deployment descriptor. The error was: Unmarshaller failed.
Message icon - Error Bean already exists: "[email protected]f2(/WeblogicEnterpriseBeans[referencetablesession])"
ERROR FROM LOG:
<Oct 2, 2009 1:08:25 PM CDT> <Error> <J2EE> <BEA-160197> <Unable to load descriptor servers/ms34/tmp/_WL_user/ProviderClaimOnlineSvc/y1anoa/ReferenceTableSession.jar/META-INF/weblogic-ejb-jar.xml of module ReferenceTableSession.jar. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:152)
at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:306)
at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:788)
at weblogic.application.descriptor.AbstractDescriptorLoader2.mergeDescriptorBeanWithPlan(AbstractDescriptorLoader2.java:703)
at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:776)
at weblogic.ejb.spi.EjbJarDescriptor.parseWeblogicEjbJarBean(EjbJarDescriptor.java:160)
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processWLEjbJarXMLWithSchema(EjbDescriptorReaderImpl.java:719)
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.parseWLDD(EjbDescriptorReaderImpl.java:541)
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processWeblogicEjbJarXML(EjbDescriptorReaderImpl.java:380)
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.createReadOnlyDescriptorFromJarFile(EjbDescriptorReaderImpl.java:191)
at weblogic.ejb.spi.EjbDescriptorFactory.createReadOnlyDescriptorFromJarFile(EjbDescriptorFactory.java:93)
at weblogic.ejb.container.deployer.EJBModule.loadEJBDescriptor(EJBModule.java:1198)
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:380)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.operations.RedeployOperation.createAndPrepareContainer(RedeployOperation.java:98)
at weblogic.deploy.internal.targetserver.operations.RedeployOperation.doPrepare(RedeployOperation.java:122)
Thanks,
Rob
Edited by: user11337024 on Oct 5, 2009 2:31 PM -
OSB: EJB Transport Configuration - Workshop for Weblogic 10.3
Hi
I'm using the latest Workshop for Weblogic 10.3. to test the EJB Transport Typed Service for Oracle Service Bus 10R3.
When I importing the EJB client jar on the EJB Transport tab of the business service configuration, the import itself first seems to work fine.
But when I try to save the business service, I get an error on that page, which says "Error in field content". There is also a message appearing on the top of the wizard, which is only partly readable and says
BUILD FAILED
java.lang.NoClassDefFoundError: javax/tools/Diagnostic
I'm trying the sample in chapter 8 from the Apress book "The definitive guide to SOA - Oracle Service Bus" and can't see what I have done wrong.
Anyone can help?
Thanks
Guido
Edited by: gschmutz on Feb 4, 2009 11:33 AMMake sure your JAVA_HOME is set to JRockit JDK - for details see CR374557 on [http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/relnotes/relnotes.html]:
ClassNotFoundExceptions on Linux when configuring a client jar for an EJB business service.
On a Linux system, if you do not specify the path to the correct version of Java correctly, you may experience ClassNotFoundException when configuring a client JAR for an EJB business service.
Workaround: The correct Java version is 1.6.0_05.
To check the version of Java you are using, execute java -version from a shell. If you are using some other version, you must update the PATH environment variable to point to the location of a 1.6.0_05 version of Java. Be sure to place this location before the location of the incorrect java. For example:
export PATH=/home/user/bea/jrockit_160_05/bin:$PATH
After making this fix, you may experience error: Generate: Error during generation of the WSDL. If so, you must update the JAVA_HOME environment variable to point to same version of Java as above. For example:
export JAVA_HOME=/home/user/bea/jrockit_160_05
Cheers
Dani -
Programmatic JAAS Authentication for Web/EJBs on WebLogic 12c
Technologies: JSPs, Servlets, EJBs (version 2.1)
Database: Oracle 11g Database
Application Server: WebLogic 12c
I am working on a project where the users and roles are stored on an Oracle database (as database users with roles granted to them). We therefore need a custom authentication method (the default WebLogic UsernamePasswordLoginModule won't cut it). We created a DatabaseUserLoginModule prior to migrating from a 10g enviroment to 11g/12c.
public class DatabaseUserLoginModule implements LoginModule
public boolean login() throws LoginException
Connection conn = null;
try
s
InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup(jndiDSName);
conn = ds.getConnection(username, password);
List dbauth = new ArrayList();
String rolesSQL = "SELECT GRANTED_ROLE FROM USER_ROLE_PRIVS UNION SELECT GRANTED_ROLE FROM ROLE_ROLE_PRIVS";
Statement rolesStmt = conn.createStatement();
ResultSet results = rolesStmt.executeQuery(rolesSQL);
dbauth.add(new DBUserPrincipal(username));
while (results.next())
String roleName = results.getString("GRANTED_ROLE");
DBRolePrincipal dbRolePrincipal = new DBRolePrincipal(roleName);
dbauth.add(dbRolePrincipal);
authPrincipals = (Principal[])dbauth.toArray(new Principal[dbauth.size()]);
catch (Exception e)
throw new LoginExcpetion(e.getMessage());
finally
try
conn.close();
catch (Exception e)
throw new LoginExcpetion(e.getMessage());
return true;
public boolean commit() throws LoginException
for (int i = 0; i < authPrincipals.length; i++)
subject.getPrincipals().add(authPrincipals[i]);
return true;
The getConnection() method on the datasource works with a database username and password thanks to the new "Use Database Credentials" option for WebLogic datasources and granting CONNECT THROUGH (datasource user) privilege for each user.
We have configured a JAAS context to use this login module by creating a jaas.conf file and setting JAVA_OPTIONS to include "-Djava.security.auth.login.config=%DOMAIN_HOME%\bin\jaas.conf". The file looks like this:
Test {
xxxx.controller.security.loginmodule.DatabaseUserLoginModule required;
When the user logs in, the application uses a LoginContext object to perform authentication:
PassiveCallbackHandler cbh = new PassiveCallbackHandler(username, password);
lc = new LoginContext("Test", cbh);
lc.login();
This successfully uses the DatabaseUserLoginModule to authenticate the user and populate the Subject with the appropriate roles.
The next step is to use an InitialContext to lookup an EJB and call a method. We have permissions in ejb-jar.xml for each method, based on database roles:
<method-permission>
<role-name>XXXX_USER</role-name>
<method>
<ejb-name>AccessControl</ejb-name>
<method-intf>Home</method-intf>
<method-name>create</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<method>
<ejb-name>AccessControl</ejb-name>
<method-intf>Remote</method-intf>
<method-name>remove</method-name>
</method>
<method>
<ejb-name>AccessControl</ejb-name>
<method-intf>Remote</method-intf>
<method-name>processFailedLogin</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
<method>
<ejb-name>AccessControl</ejb-name>
<method-intf>Remote</method-intf>
<method-name>processSuccessfulLogin</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</method>
</method-permission>
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, "t3://localhost:7101");
env.put(Context.SECURITY_PRINCIPAL, username);
env.put(Context.SECURITY_CREDENTIALS, password);
InitialContext ic = new InitialContext(env);
ic.lookup("EJBName");
The problem is that when the InitialContext is initialised I get the following error:
javax.naming.AuthenticationException [Root exception is javax.security.auth.login.FailedLoginException: [Security:090304]Authentication Failed: User XXXX_USER] javax.security.auth.login.FailedLoginException: [Security:090302]Authentication Failed: User XXXX_USER denied]
It looks like the InitialContext is attempting to authenticate the user through WebLogic's default authenticator. How do I tell it to use the JAAS context (with the custom login module) I have already set up?
If I use the default constructor (new InitialContext()) then I get a different error when calling an EJB method:
<java.rmi.AccessException: [EJB:010160]Security violation: User <anonymous> has insufficient permission to access EJB type=<ejb>, application=TestApplication, module=TestEJB.jar, ejb=AccessControl, method=processSuccessfulLogin, methodInterface=Remote, signature={java.lang.String}.>
In this case, how do I propagate the Subject after using LoginContext so that the user calling EJB methods is not anonymous?This is the JDev & ADF forum. Your question is better asked in one of the WebLogic forums!
Timo -
Hi there,
I having a problem every time I try to EJBHome.create( ...) a new
CMP EJB 2.0 via a JavaBean
called from an JSP or directly from the JSP.
However, I successfully can retrieved EJBHome.findByPrimaryKey("myKey")
from both the
JavaBean and JSP.
Could you help me figure out why .create does not work ?
Here is the exceptions chain :
weblogic.utils.AssertionError: *****
ASSERTION FAILED *****[ Unexpected IOException
marshalling on server-side ] at
weblogic.rmi.internal.OutboundServerResponse.sendThrowable(OutboundServerResponse.java:63)
at weblogic.rmi.internal.BasicServerAdapter.handleThrowable(BasicServerAdapter.java:477)
at
weblogic.rmi.internal.BasicServerAdapter.postInvoke(BasicServerAdapter.java:449)
at
weblogic.rmi.internal.BasicRequestHandler.handleRequest(BasicRequestHandler.java:122)
at
weblogic.rmi.internal.BasicRequestDispatcher.dispatch(BasicRequestDispatcher.java:115)
at
weblogic.rmi.internal.ServerRequest.sendOneWayRaw(ServerRequest.java:88)
at
weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:108)
at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:247)
at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:225)
< ... my
source file specified here ...>
at jsp_servlet._jsp._user._results._jspService(_results.java:182)
at
weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:213)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:246)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:1265)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1622)
at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
<Mar 22, 2001 5:50:03 PM JST>
<Error> <AdapterDispatcher> <Error
in Dispatcher
Thank you, rivisa
Sorry but I have forgotten to precise that I have also developped a EJB CMP 1.1 where the bean class is not abstract and I have the same error when the JSP page calls this EJB
(for the EJB CMP 2.0 the bean class is declared abstract) -
Help In Ejb with Weblogic Builder
I am Trying to create an Deployment Descriptor for CMP bean using WebLogic Builder8.1.
I have created class files in Demo Folder for
Remote Interface.
Home Interface.
Bean.
and Stored in a Directory.
I open i WebLogicBuilder
File>>>Open>>Folder containing Class files
>>Open
It ask Would u like new Deployment Descriptor Created for you
>>Click Yes
Immediately i get the following Message :
Search for EJB components in C:\Documents and Settings\prasanth\Desktop\Dump
No EJBs found in C:\Documents and Settings\prasanth\Desktop\Dump
Search for Web components in C:\Documents and Settings\prasanth\Desktop\Dump
searching for possible EAR modules
[DDInitModUpdateUI]: asking ddinit question
Please Help Me out..
Thnaks in AdvancePlease refer to :
http://www.oracle.com/technology/obe/obe1013jdev/index.htm
And
http://www.oracle.com/technology/obe/obe9051jdev/index.htm
These are the best Audio/Video/Image Tutorials ever i have seen for Jdeveloper. U will definately like it.
Learn, Enjoy and Share.... ;)
Thanks
Jay SenSharma
http://weblogic-wonders.com/weblogic (WebLogic Wonders Are here) -
Building EAR for WebLogic 8.1 with Eclipse plugin
I am developing an EJB app for deployment in WebLogic, JBoss and Sun ONE. I use plugins for JBoss and Sun ONE, with the help of XDoclet, and have no problem creating the required XML and JAR files. However, the WebLogic Workshop creates many files, like oztplsEOImpl.java, oztp1sHomeImpl.java, Hello_oztp1s_EOImplRTD.xml and many others, while the Eclipse plugin only creates the Home and Remote interface .java files, and the prerequisite .xml files (ejb-jar.xml, weblogic-ejb-jar.xml, and weblogic-cmp-rdbms-jar.xml).
Why is that? And how can I build/package the EAR file from within Eclipse, without using WebLogic tools? I am trying to maintain a single codebase, with multiple XDoclet tags to create the appropriate interfaces and XML files. So far, I could achieve this for JBoss and Sun ONE, but it seems to be impossible for WebLogic.
Thanks for any enlightenment.
Alex MolochnikovIt is quite easy to rewrite the plugin to work with 8.1
We have done so - please contact me if you want the plugin.
Sincerely,
Paul Nyheim
"HOs" <[email protected]> wrote in message
news:3f72ce93$[email protected]..
>
Hi,
how can I debug my weblogic 8.1 application ?
I`m using eclipse, but the plugin I´ve got, is only for versions 6.x and7.0 .
So I tried remote debugging but eclipse could not connect to the VM, I donot
know why.
Any ideas ??
Thanks
Holger -
How to create Entity Bean (CMP) using JDeveloper & Weblogic
Hi,
Using : JDeveloper9i (9.0.2.829)
When i am inside the EJB Wizard (Step 1 of 3), the input field 'CMP Provider' shows only Oracle9iAS CMP Provider.
How should i make my entity take 'Weblogic' as CMP provider for my beans using JDeveloper. I have my tables in Oracle personal db. I was able to succesfuly add a Weblogic/Db connection under respective connections node.
Should i need to do something more so that i am given an option of choosing Weblogic as CMP provider.
thanks for the advance help
regds
srikanthCurrently there is no specific option for WebLogic CMP provider.
You need to manually add the WebLogic CMP deployment descriptor to the project containing
EJB Entity beans and deploy to WebLogic.
raghu
JDev Team -
Hi,
I'm new in Enterprise javabeans, I have been looking for (almost five days) the
best way to get the result for a complex query. I tried with example Weblogic
BeanManaged. I put the query directly in a method in entityBean class with prepareStatament
and that worked.
But, I have to evaluate the best way to get result with EJB's. So, I think that
I have to evaluate others like containerManaged, in this case I have to define
each entity Bean and relationships and everything, isn't it?
Is there another way to develop it with good results? and fast?
If someone have any good idea to develop a solution with EJB's for this query.
I'm really appreciate it.
select CU.ID_CUENTA_USO, C.CLASE_CUENTA, C.ESTADO, P.ID_PRODUCTO, P.NOMBRE_PRODUCTO,
CU.ID_TIPO_PAGO, AOA.ID_AREA, AOA.NOMBRE_AREA, AOA.ID_TIPO_AOA, CU.ID_CLIENTE_USUARIO,
decode (PN.ID_PERSONA,null, decode (PJ.ID_PERSONA,null, PR.APELLIDOS || ' ' ||PR.NOMBRES,
PJ.NOMBRE_EMPRESA),PN.APELLIDOS || ' ' ||PN.NOMBRES)
from ATRIBUTOS A, CUENTA_USO CU, CUENTA C, PRODUCTO P,
AREA_OPERACIONES_ADM AOA, PERSONA_NATURAL PN, PERSONA_JURIDICA PJ, PERSONA_REPRESENTADO
PR
where A.ABREVT_ATRIB_CTA_USO = 'NRO_CELULAR'
and A.VALOR = '142000000'
and CU.ID_CUENTA_USO = A.ID_CUENTA_USO
and C.ID_CUENTA = CU.ID_CUENTA_USO
and P.ID_PRODUCTO = CU.ID_PRODUCTO
and AOA.ID_AREA(+) = CU. ID_AREA_ACTIVACION
and AOA.ID_TIPO_AOA(+) = CU.ID_TIPO_AREA_ACTIVACION
and PN.ID_PERSONA(+) = CU.ID_CLIENTE_USUARIO
and PJ.ID_PERSONA(+) = CU.ID_CLIENTE_USUARIO
and PR.ID_PERSONA(+) = CU.ID_CLIENTE_USUARIO
order
by P.ID_PRODUCTO, CU.ID_CUENTA_USO;
Thank's in advanced
YoseHola/Hello Ryan
Muchas Gracias por tu respuesta/ Thank's a lot for your answer, I'm trying with
relationship-caching but something is missing.. because i got an error:
ejbc:
[java] [EJBCompiler] : Recompiling because no previous hashes found
[java] [EJBCompiler] : Compliance Checker said bean was compliant
[java]
[java]
[java]
[java] ERROR: Error from ejbc: While reading META-INF/weblogic-cmp-rdbms-jar.xml,
the Entity EJB's peristence layer failed to deploy. The error was:
[java] Error in descriptor line 44: Element type "relationship-caching"
must be declared.
[java]
[java]
[java] ERROR: ejbc found errors
I have two EJB Cuenta and Atributo I defined a relationship in the weblogic-cmp-rdbms-jar.
(I want to start with two entity and add later the others producto, cuenta, persona_x)
<relationship-caching>
<caching-name>Cuenta-Atributo</caching-name>
<caching-element>
<cmr-field>cuenta</cmr-field>
<group-name>cuentas_group</group-name>
<caching-element>
<cmr-field>atributos</cmr-field>
<group-name>atrib_group</group-name>
</caching-element>
</caching-element>
</relationship-caching>
Where i have to defined it? Thanks a lot for your help..
Yosemarlyn
"Ryan LeCompte" <[email protected]> wrote:
>
Hola/Hello Yosemarlyn,
You can utilize EJB 2.0 CMP to model the query that you specified. You
would model
the business domain as CMP Entity beans and then specify the various
relationships
among them. You actually may get an increase in performance by utilizing
CMP/CMR
in WebLogic due to the new features such as relationship caching, optimistic
concurrency
strategy support, etc. Utilizing these features will drastically reduce
the number
of SQL Joins (and overall hits to the database, due to caching). Below
are various
links for learning more:
Mastering EJB II (Good book for learning about CMP/CMR):
http://www.theserverside.com/books/masteringEJB/index.jsp
Optimistic Concurrency:
http://dev2dev.bea.com/resourcelibrary/technicalguides/Optimistic_Concurrency.jsp
http://edocs.bea.com/wls/docs70/ejb/EJB_environment.html#1153757
Relationship caching:
http://edocs.bea.com/wls/docs70/ejb/EJB_environment.html#1151177
Espero que esto te sirva bien. :-)
Saludos,
Ryan LeCompte
[email protected]
http://www.louisiana.edu/~rml7669
"Yosemarlyn Lopez" <[email protected]> wrote:
Hi,
I'm new in Enterprise javabeans, I have been looking for (almost five
days) the
best way to get the result for a complex query. I tried with example
Weblogic
BeanManaged. I put the query directly in a method in entityBean class
with prepareStatament
and that worked.
But, I have to evaluate the best way to get result with EJB's. So, I
think that
I have to evaluate others like containerManaged, in this case I have
to define
each entity Bean and relationships and everything, isn't it?
Is there another way to develop it with good results? and fast?
If someone have any good idea to develop a solution with EJB's for this
query.
I'm really appreciate it.
select CU.ID_CUENTA_USO, C.CLASE_CUENTA, C.ESTADO, P.ID_PRODUCTO, P.NOMBRE_PRODUCTO,
CU.ID_TIPO_PAGO, AOA.ID_AREA, AOA.NOMBRE_AREA, AOA.ID_TIPO_AOA, CU.ID_CLIENTE_USUARIO,
decode (PN.ID_PERSONA,null, decode (PJ.ID_PERSONA,null, PR.APELLIDOS
|| ' ' ||PR.NOMBRES,
PJ.NOMBRE_EMPRESA),PN.APELLIDOS || ' ' ||PN.NOMBRES)
from ATRIBUTOS A, CUENTA_USO CU, CUENTA C, PRODUCTO P,
AREA_OPERACIONES_ADM AOA, PERSONA_NATURAL PN, PERSONA_JURIDICA PJ, PERSONA_REPRESENTADO
PR
where A.ABREVT_ATRIB_CTA_USO = 'NRO_CELULAR'
and A.VALOR = '142000000'
and CU.ID_CUENTA_USO = A.ID_CUENTA_USO
and C.ID_CUENTA = CU.ID_CUENTA_USO
and P.ID_PRODUCTO = CU.ID_PRODUCTO
and AOA.ID_AREA(+) = CU. ID_AREA_ACTIVACION
and AOA.ID_TIPO_AOA(+) = CU.ID_TIPO_AREA_ACTIVACION
and PN.ID_PERSONA(+) = CU.ID_CLIENTE_USUARIO
and PJ.ID_PERSONA(+) = CU.ID_CLIENTE_USUARIO
and PR.ID_PERSONA(+) = CU.ID_CLIENTE_USUARIO
order
by P.ID_PRODUCTO, CU.ID_CUENTA_USO;
Thank's in advanced
Yose
[weblogic-cmp-rdbms-jar.xml] -
How to hot deploy EJB in Weblogic?
Hi all,
We use Weblogic 10.3 and EJB3.
EJB has been build as ear and deployed in the server. And other deployed modules in server calls that.
But the modification of EJB need to be rebuilt and restart the server.
Does Weblogic support hot deploy for EJB? Do we need plugin or something else for this feature?
Thanks a lot.Hi,
The production redeployment strategy/hot deployment is supported for:
a. Standalone Web Application (WAR) modules and Enterprise applications (EARs) whose clients access the application via a Web application (HTTP).
b. Enterprise applications that are accessed by inbound JMS messages from a global JMS destination, or from inbound JCA requests.
c. All types of Web Services, including conversational and reliable Web Services, but not 8.x Web Services.
Production redeployment is not supported for:
a. Standalone EJB or RAR modules. If you attempt to use production redeployment with such modules, WebLogic Server rejects the redeployment request. To redeploy such modules, remove their version identifiers and explicitly redeploy the modules.
b. Applications that use JTS drivers. For more information on JDBC application module limitations, see JDBC Application Module Limitations in Configuring and Managing JDBC for Oracle WebLogic Server.
c. Applications that obtain JDBC data sources via the DriverManager API; in order to use production redeployment, an application must instead use JNDI to look up data sources.
d. Applications that include EJB 1.1 container-managed persistence (CMP) EJBs. To use production redeployment with applications that include CMP EJBs, use EJB 2.x CMP instead of EJB 1.1 CMP.
Please check the below Doc
http://docs.oracle.com/cd/E14571_01/web.1111/e13702/redeploy.htm#
Hope this answers your question!!
Thanks,
Vijaya
Maybe you are looking for
-
Quick system at a glance report - how.
The nature of this question revolves around the "Performance" report in "Microsoft Generic Report Library" Scenario: A manager comes by my desk and says "Hey, can you tell me what the drive space has been like on server {x} for the past month?". I go
-
Setting sort priority to 90.0 by default instead of standard 100.0
Hai, I have requirement in which i have to upload some 100 roles from SAP R/3. When these 100 roles are imported, it will have sort priority 100.00. I have created a another Iview, that also has sort priority as 100.0 by default. When I assign few o
-
ITunes won't let me drag and drop files onto my iPod.
i recently had my mac repaired and the hard drive was set back to its original settings. I had my itunes music that i had purchased restored and i have begun to download new songs to add to my ipod. itunes will not allow me drag new songs onto my ipo
-
Satellite Pro M50 (PSM55E-001001EN) - Some keys are not work
Hi all Ive got a problem with my keyboard on the above model. I originally thought it was just the keyboard so I bought another one and installed it and this one is doing the same. Problem:- r button and y button not working originally new keyboard n
-
Problem with mdworker process, mac slowdowns
Hello. I have been having slowdowns of my mac without a reason. The problem that seems to be responsible is mdworker, as in the console about the only messages i get are phrased like this: "07/12/14 16:26:06,000 kernel[0]: Sandbox: mdworker(20160) de