Re: Re: About JCA 1.5 Admin objects and JNDI
On Jul 10, 2009, at 3:01 AM, johnxmas wrote: Hi all, With JCA 1.5 was introduced the concept of Admin Objects. So now, you cand deploy in your resource adapter much more thant a ConnectionFactory; I used the feature to include in my deployment the InteractionSpec and ConnectionSpec. But at lookup time, it sems these objects are passed by refernce.Which is a serious problem: say client A sets its userName and password in the ConnectionSpec. These values get stored in the JNDI instance and can be read by client B ! How would returning copies of the admin object help with this? Using a copy would insure that every one making a lookup of an Object gets the stored Object instance, set whith the values indicated in the deployment descriptor. Without a copy, modifications of these values are set in the JNDI instance and every user get them (and that can be a real pb in case of credentials for instance) This behavior is not specific to Geronimo. Most (but not all) application servers produce the same result... Sould not lookup return a clone of the Objects ? I think the spec indicates copies should be returned. We used to return proxies. I've always wondered what the point of a lot of the jndi spec was. I've taken the view that the important part of the spec is for jndi to act like a hashmap and that since our jndi is in- vm only and not persistent lookup speed is pretty much the most important bit. Could you explain in more detail what you don't like about this and what you want instead? thanks david jencks Your opinon deeply interest me. Thanks Jean-Noël
About JCA 1.5 Admin objects and JNDI
Hi all, With JCA 1.5 was introduced the concept of Admin Objects. So now, you cand deploy in your resource adapter much more thant a ConnectionFactory; I used the feature to include in my deployment the InteractionSpec and ConnectionSpec. But at lookup time, it sems these objects are passed by refernce.Which is a serious problem: say client A sets its userName and password in the ConnectionSpec. These values get stored in the JNDI instance and can be read by client B ! This behavior is not specific to Geronimo. Most (but not all) application servers produce the same result... Sould not lookup return a clone of the Objects ? Your opinon deeply interest me. Thanks Jean-Noël
Fw: Re: Re: J2EE Connector deployment problem
After adding gbean name=DirectoryLog4jConfiguration class=org.apache.geronimo.system.logging.log4j.ApplicationLog4jConfigurationGBean attribute name=log4jResourceMETA-INF/log4j.properties/attribute /gbean to my geronimo-ra.xml, I get the following exception 16:25:37,156 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: abstractName=com.scort.demos/vscics/1.0/ear?J2EEApplication=com.scort.demos/vscics/1.0/ear,j2eeType=SystemLog,name=DirectoryLog4jConfiguration java.lang.NullPointerException at org.apache.geronimo.system.logging.log4j.ApplicationLog4jConfigurationGBean.init(ApplicationLog4jConfigurationGBean.java:52) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:948) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124) at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555) at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379) at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:456) at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:188) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:562) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:543) 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:585) at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:832) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) at org.apache.geronimo.kernel.config.EditableConfigurationManager$$EnhancerByCGLIB$$df9048d.startConfiguration(generated) at org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartCommand.java:67) at java.lang.Thread.run(Thread.java:595)
Re: Re: Geronimo security question
Hi all, Is the spadim (rather than spadmin) a typo in this email only or is it also reflected in your xml? Joe Shame on me ! Yes, there was a typo. Once corrected, it worked with (as David had suggested) : security role-mappings role role-name=spadmin principal name=spadmin class=org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ /role /role-mappings /security Thanks a lot for your help Jean-Noël johnxmas wrote: shouldn't principal name=scort designated-run-as=true class =org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ be principal name=spadmin designated-run-as=true class =org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ ? I'd leave out designated-run-as=true thanks david jencks I tried with security role-mappings role role-name=spadim principal name=spadim class=org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ /role /role-mappings /security security role-mappings role role-name=spadim principal name=scort class=org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ /role /role-mappings /security None works ! Jean-Noël On Oct 31, 2008, at 2:59 AM, johnxmas wrote: Hi David, Anyway I think what you need to do is: 1. define a properties file login module based security realm, perhaps by using the admin console. Lets say you call it my-realm 2. translate the data into property files: my-users.properties: scort=scort my-groups.properties: spadmin=scort 3. put the properties files in the correct location, I'd suggest var/ security 4. specify the my-realm security realm in the geronimo web app plan security-realmmy-realm/security-realm 5. Include the desired principal-role mapping that maps the spadmin group to the app-specific spadmin role. There are some instructions on this at the end of http://cwiki.apache.org/GMOxDOC21/configuring-run-as-and-default-subjects-and-principal-role-mapping.html hope this helps, david jencks Thanks for your answer. So I did create a realm (BTW, the console is very nice for this item) and the corresponding properties files. I validated that realm. It was ok for scort org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal spadmin org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal and added to geronmo-web.xml the following security-realm-name smartpack-realm /security-realm-name security role-mappings role role-name=spadim principal name=scort designated-run-as=true class = org .apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ /role /role-mappings /security But when calling the app, I still get a 403 error: Access to the specified resource () has been forbidden. What I'm doing wrong ? Jean-Noël
Re: Re: Geronimo security question
shouldn't principal name=scort designated-run-as=true class =org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ be principal name=spadmin designated-run-as=true class =org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ ? I'd leave out designated-run-as=true thanks david jencks I tried with security role-mappings role role-name=spadim principal name=spadim class=org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ /role /role-mappings /security security role-mappings role role-name=spadim principal name=scort class=org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ /role /role-mappings /security None works ! Jean-Noël On Oct 31, 2008, at 2:59 AM, johnxmas wrote: Hi David, Anyway I think what you need to do is: 1. define a properties file login module based security realm, perhaps by using the admin console. Lets say you call it my-realm 2. translate the data into property files: my-users.properties: scort=scort my-groups.properties: spadmin=scort 3. put the properties files in the correct location, I'd suggest var/ security 4. specify the my-realm security realm in the geronimo web app plan security-realmmy-realm/security-realm 5. Include the desired principal-role mapping that maps the spadmin group to the app-specific spadmin role. There are some instructions on this at the end of http://cwiki.apache.org/GMOxDOC21/configuring-run-as-and-default-subjects-and-principal-role-mapping.html hope this helps, david jencks Thanks for your answer. So I did create a realm (BTW, the console is very nice for this item) and the corresponding properties files. I validated that realm. It was ok for scort org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal spadmin org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal and added to geronmo-web.xml the following security-realm-name smartpack-realm /security-realm-name security role-mappings role role-name=spadim principal name=scort designated-run-as=true class = org .apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ /role /role-mappings /security But when calling the app, I still get a 403 error: Access to the specified resource () has been forbidden. What I'm doing wrong ? Jean-Noël
Re: Re: Geronimo security question
Hi David, Anyway I think what you need to do is: 1. define a properties file login module based security realm, perhaps by using the admin console. Lets say you call it my-realm 2. translate the data into property files: my-users.properties: scort=scort my-groups.properties: spadmin=scort 3. put the properties files in the correct location, I'd suggest var/ security 4. specify the my-realm security realm in the geronimo web app plan security-realmmy-realm/security-realm 5. Include the desired principal-role mapping that maps the spadmin group to the app-specific spadmin role. There are some instructions on this at the end of http://cwiki.apache.org/GMOxDOC21/configuring-run-as-and-default-subjects-and-principal-role-mapping.html hope this helps, david jencks Thanks for your answer. So I did create a realm (BTW, the console is very nice for this item) and the corresponding properties files. I validated that realm. It was ok for scort org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal spadmin org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal and added to geronmo-web.xml the following security-realm-name smartpack-realm /security-realm-name security role-mappings role role-name=spadim principal name=scort designated-run-as=true class=org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal/ /role /role-mappings /security But when calling the app, I still get a 403 error: Access to the specified resource () has been forbidden. What I'm doing wrong ? Jean-Noël
Geronimo security question
Hi, I'm moving applications from Tomcat to Geronimo 2.1.3 One of these apps had security constraints. I read the documentation but, honestly, I didn't understand how I can achieve the same under Geronimo Any help would be appreciated Jean-Noël Here is the tomcat configuration - tomcat-users.xml ?xml version='1.0' encoding='utf-8'? tomcat-users role rolename=tomcat/ role rolename=role1/ role rolename=manager/ role rolename=admin/ role rolename=spadmin/ user username=tomcat password=tomcat roles=tomcat/ user username=both password=tomcat roles=tomcat,role1/ user username=role1 password=tomcat roles=role1/ user username=scort password=scort roles=manager,admin,spadmin/ /tomcat-users - the app web.xml had the following entries security-constraint web-resource-collection web-resource-nameProtected Area/web-resource-name !-- Define the context-relative URL(s) to be protected -- url-pattern/main/url-pattern url-pattern/jsp/customize.jsp/url-pattern url-pattern/jsp/editconnspec.jsp/url-pattern url-pattern/jsp/manageconnspec.jsp/url-pattern url-pattern/admin/config/*/url-pattern url-pattern/CreateConnection.srv/url-pattern url-pattern/ModifyConnection.srv/url-pattern url-pattern/EditConnection.srv/url-pattern url-pattern/DeleteConnection.srv/url-pattern url-pattern/ModifyRendering.srv/url-pattern !-- If you list http methods, only those methods are protected -- http-methodGET/http-method http-methodDELETE/http-method http-methodPOST/http-method http-methodPUT/http-method /web-resource-collection auth-constraint role-namespadmin/role-name /auth-constraint /security-constraint login-config auth-methodFORM/auth-method form-login-config form-login-page/admin/login/login.jsp/form-login-page form-error-page/admin/login/error.jsp/form-error-page /form-login-config /login-config security-role descriptionSecurity role for Smart Pack/description role-namespadmin/role-name /security-role
JCA Connector getConnection returning a Proxy
Hi, I'm experiencing a problem with my ResourceAdapter: the getConnection metod of my ConnectionFactory returns a Proxy instead of the expected Connection , causing a ClassCastException java.lang.ClassCastException: $Proxy33 com.scort.ctg.cics.eci.jca.EciConnectionFactory.getConnection(EciConnectionFactory.java:381) Any help would be appreciated Geronimo version is 2.1.3 Jean-Noël
Deployment pb with geronimo 2.1.1
Hello, I just deployed the latest release (2.1.1). When deploying a war (that works fin with geronimo 2.0.2), I get the following exception: 10:18:35,593 ERROR [DirectoryHotDeployer] Unable to deploy: Unable to create con figuration for deployment org.apache.geronimo.common.DeploymentException: Unable to create configuration f or deployment at org.apache.geronimo.deployment.DeploymentContext.createTempConfigurat ion(DeploymentContext.java:120) at org.apache.geronimo.deployment.DeploymentContext.init(DeploymentCon text.java:100) at org.apache.geronimo.deployment.DeploymentContext.init(DeploymentCon text.java:80) at org.apache.geronimo.j2ee.deployment.EARContext.init(EARContext.java :68) at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfigurati on(EARConfigBuilder.java:530) at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:254) at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:133) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(Refl ectionMethodInvoker.java:34) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperatio n.java:124) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance. java:867) at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java: 239) at org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doD eploy(AbstractDeployCommand.java:116) at org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(Dis tributeCommand.java:61) at java.lang.Thread.run(Thread.java:595) Caused by: org.apache.geronimo.kernel.config.LifecycleException: load of com.sco rt.demos/nicedemo/1.0/war failed at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConf iguration(SimpleConfigurationManager.java:299) at org.apache.geronimo.deployment.DeploymentConfigurationManager.loadCon figuration(DeploymentConfigurationManager.java:115) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConf iguration(SimpleConfigurationManager.java:286) at org.apache.geronimo.deployment.DeploymentConfigurationManager.loadCon figuration(DeploymentConfigurationManager.java:111) at org.apache.geronimo.deployment.DeploymentContext.createTempConfigurat ion(DeploymentContext.java:117) ... 17 more Caused by: org.apache.geronimo.kernel.repository.MissingDependencyException: Mis sing dependency: org.apache.geronimo.configs/rmi-naming//car at org.apache.geronimo.kernel.repository.DefaultArtifactResolver.resolve InClassLoader(DefaultArtifactResolver.java:111) at org.apache.geronimo.kernel.repository.DefaultArtifactResolver.resolve InClassLoader(DefaultArtifactResolver.java:104) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.resolveP arentIds(SimpleConfigurationManager.java:473) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadDept hFirst(SimpleConfigurationManager.java:431) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadDept hFirst(SimpleConfigurationManager.java:439) at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConf iguration(SimpleConfigurationManager.java:296) ... 21 more I don't understant the root cause Caused by: org.apache.geronimo.kernel.repository.MissingDependencyException: Mis sing dependency: org.apache.geronimo.configs/rmi-naming//car I'm joing my geronimo-web.xml Thanks for your help Jean-Noël geronimo-web.xml Description: Binary data
Re: Re: JCA Connector and hidden-classes
I'm not sure exactly what you are trying to do but have you looked at http://cwiki.apache.org/GMOxDOC21/configuring-application-specific-logging-with-log4j.html to see if it would help? thanks david jencks Alas, I'm using geronimo 2.0.2... I don't feel I'm trying to do something special. I'm deploying a Resource Adapter packaged in a rar file. I want this adapter to use the commons-logging.jar and log4j.jar (with their corresponding commons-logging.properties and log4j.xml) that are in the rar, in order to have total control on the log level Thanks Jean-Noël On Jul 9, 2008, at 2:44 AM, johnxmas wrote: Kevan, I corrected my geronimo.bat, by suppressing the quotes as you stated, and, yes, it succeeded: the commons-logging.jar used is the one from my application Thanks for that BUT, that is not a full success: as expected, the LogFactory gives me a Log4JLogger MockAdapter setting hostName - Log is org.apache.commons.logging.impl.Log4JLogger - loaded from file:/D:/ geronimo-tomcat6-jee5-2.0.2/repository/mock/jca/MockAdapter/1.0/ MockAdapter-1.0.rar/rar/commons-logging-1.1.jar Alas, the following line MockAdapter - embedded Log is org.apache.log4j.Logger - loaded from file:/D:/geronimo-tomcat6-jee5-2.0.2/lib/log4j-1.2.14.jar shows that my applications log4j.jar is not used. So, my local log4j.xml is ignored and I get a default INFO trace level instead of the ones I specified Jean-Noël On Jul 8, 2008, at 9:24 AM, johnxmas wrote: David, Hmm. The MPCLSearchOption is working for me. I set as follows: set JAVA_OPTS=- DXorg.apache.geronimo.kernel.config.MPCLSearchOption=safe I verified that this works on Windows (and Mac OS X). I had Jetty installed. Don't see how a Tomcat install could behave differently. Here's the output during deploy: MockAdapter setting hostName - Log factory is org.apache.commons.logging.LogFactory - loaded from file:/C:/ geronimo- jetty6-jee5-2.0.2/repository/mock/jca/MockAdapter/1.0/ MockAdapter-1.0.rar/rar/commons-logging.jar Doh... I bet the 's that you used are wrong... If you update your GERONIMO_OPTS setting in geronimo.bat and remove the quotation mark characters, I bet it works... Still need to fix this properly... --kevan
Re: Re: JCA Connector and hidden-classes
Kevan, I corrected my geronimo.bat, by suppressing the quotes as you stated, and, yes, it succeeded: the commons-logging.jar used is the one from my application Thanks for that BUT, that is not a full success: as expected, the LogFactory gives me a Log4JLogger MockAdapter setting hostName - Log is org.apache.commons.logging.impl.Log4JLogger - loaded from file:/D:/geronimo-tomcat6-jee5-2.0.2/repository/mock/jca/MockAdapter/1.0/MockAdapter-1.0.rar/rar/commons-logging-1.1.jar Alas, the following line MockAdapter - embedded Log is org.apache.log4j.Logger - loaded from file:/D:/geronimo-tomcat6-jee5-2.0.2/lib/log4j-1.2.14.jar shows that my applications log4j.jar is not used. So, my local log4j.xml is ignored and I get a default INFO trace level instead of the ones I specified Jean-Noël On Jul 8, 2008, at 9:24 AM, johnxmas wrote: David, Hmm. The MPCLSearchOption is working for me. I set as follows: set JAVA_OPTS=-DXorg.apache.geronimo.kernel.config.MPCLSearchOption=safe I verified that this works on Windows (and Mac OS X). I had Jetty installed. Don't see how a Tomcat install could behave differently. Here's the output during deploy: MockAdapter setting hostName - Log factory is org.apache.commons.logging.LogFactory - loaded from file:/C:/geronimo- jetty6-jee5-2.0.2/repository/mock/jca/MockAdapter/1.0/ MockAdapter-1.0.rar/rar/commons-logging.jar Doh... I bet the 's that you used are wrong... If you update your GERONIMO_OPTS setting in geronimo.bat and remove the quotation mark characters, I bet it works... Still need to fix this properly... --kevan
Re: Re: JCA Connector and hidden-classes
David, At last, my mail problems are over ! I tried the given solution by adding, in geronimo.bat, set GERONIMO_OPTS=%GERONIMO_OPTS% -DXorg.apache.geronimo.kernel.config.MPCLSearchOption=safe It did not solve the problem. Is my syntax correct ? I tried almost everything, added commons-logging1.1 in the repository and a dependency in my deployment plan, and so on... Still same result: all I'm getting as LogFactory is loaded from /D:/geronimo-tomcat6-jee5-2.0.2/lib/commons-logging-1.0.4.jar I saw aJ Jira was opened for this issue (GERONIMO-4082), but it seems to be still unresolved I m a bit lost, as I really do need to control my apps logging... Jean-Noël I haven't had a chance to look into this yet but someone just reported a problem that looks related on the dev list, an apparent bug in our classloader -- hidden class filters are ignored by default for classes in the system classloader. Apparently a workaround for this is to include this flag on the jvm command line: -DXorg.apache.geronimo.kernel.config.MPCLSearchOption=safe Please let us know if this fixes the problem I'll also try to look at your sample soon. thanks david jencks On May 26, 2008, at 1:56 AM, [EMAIL PROTECTED] wrote: David, Sorry for the delay, but I experienced a lot of network problems for quite a long time. I'm joining a mock resource adapter you can use to reproduce the problem (BTW, I'm using geronimo 2.0.2 with Tomcat 6). My deployment plan specifies commons-logging and log4j as hidden-classes). When deploying the RAR a method setHostName is called (see ra.xml). I added some code to see what I get concerning logging. The following result is written on the console Geronimo Application Server started MockAdapter setting hostName - Log factory is org.apache.commons.logging.LogFact ory - loaded from file:/D:/geronimo-tomcat6-jee5-2.0.2/lib/commons-logging-1.0.4.jar MockAdapter setting hostName - Log is org.apache.geronimo.kernel.log.GeronimoLog - loaded from file:/D:/geronimo-tomcat6-jee5-2.0.2/lib/geronimo-kernel-2.0.2.jar which, of course, is not what I expected Hope the test case can help. Let me know if you need the sources Thanks Jean-Noël What geronimo version are you using? I hope it's not 1.0 :-) (I'd recommend 2.1) I'm not sure why this isn't working yet. Is there any chance you could lend me your connector or a test case? The environment element of the geronimo plan might be enough for me to come up with a test if this is not practical. thanks david jencks On Apr 23, 2008, at 12:19 AM, johnxmas wrote: David, Thanks for your help I corrected the geronim-ra.xml according to your indications, but I still get the same problem (load origin is got thru LogFactory .class.getProtectionDomain().getCodeSource().getLocation()) --- LOG FACTORY is loaded from file:/D:/geronimo-1.0/lib/commons- logging-1.0.4.jar Jean-Noël The filter element only takes one package, so you want dep:hidden-classes dep:filterorg.apache.commons.logging./dep:filter dep:filterorg.apache.log4./dep:filter /dep:hidden-classes Also its a good idea to include the . just in case someone has a package org.apache.log4jakarta or something that you don't want to hide :-) Let us know if there are additional problems thanks david jencks On Apr 22, 2008, at 7:50 AM, johnxmas wrote: Hello, I created my own JCA connector. Wanting to use my own version of commons-logging and log4j, I have embedded in thre RAR the two corresponding jars and, in geronimo-ra.xml, added the following lines dep:hidden-classes filterorg.apache.commons.logging,org.apache.log4/filter /dep:hidden-classes But, when I deploy the adapter (stand-alone deployment, not thru an EAR), I do not get the expected result. I traced the code, and discovered that in fact the resources are loaded from the parent --- LOG FACTORY is loaded from file:/D:/geronimo-1.0/lib/commons- logging-1.0.4.jar If any one has got an explaination Thanks Jean-Noël MockAdapter.rar
Re: Re: JCA Connector and hidden-classes
David, Thanks for your help I corrected the geronim-ra.xml according to your indications, but I still get the same problem (load origin is got thru LogFactory.class.getProtectionDomain().getCodeSource().getLocation()) --- LOG FACTORY is loaded from file:/D:/geronimo-1.0/lib/commons- logging-1.0.4.jar Jean-Noël The filter element only takes one package, so you want dep:hidden-classes dep:filterorg.apache.commons.logging./dep:filter dep:filterorg.apache.log4./dep:filter /dep:hidden-classes Also its a good idea to include the . just in case someone has a package org.apache.log4jakarta or something that you don't want to hide :-) Let us know if there are additional problems thanks david jencks On Apr 22, 2008, at 7:50 AM, johnxmas wrote: Hello, I created my own JCA connector. Wanting to use my own version of commons-logging and log4j, I have embedded in thre RAR the two corresponding jars and, in geronimo-ra.xml, added the following lines dep:hidden-classes filterorg.apache.commons.logging,org.apache.log4/filter /dep:hidden-classes But, when I deploy the adapter (stand-alone deployment, not thru an EAR), I do not get the expected result. I traced the code, and discovered that in fact the resources are loaded from the parent --- LOG FACTORY is loaded from file:/D:/geronimo-1.0/lib/commons- logging-1.0.4.jar If any one has got an explaination Thanks Jean-Noël
JCA Connector and hidden-classes
Hello, I created my own JCA connector. Wanting to use my own version of commons-logging and log4j, I have embedded in thre RAR the two corresponding jars and, in geronimo-ra.xml, added the following lines dep:hidden-classes filterorg.apache.commons.logging,org.apache.log4/filter /dep:hidden-classes But, when I deploy the adapter (stand-alone deployment, not thru an EAR), I do not get the expected result. I traced the code, and discovered that in fact the resources are loaded from the parent --- LOG FACTORY is loaded from file:/D:/geronimo-1.0/lib/commons-logging-1.0.4.jar If any one has got an explaination Thanks Jean-Noël
Re: Re: JNDI Question
David, This time, it did work. Thank's a lot for your dedication. I was not familiar with resource-ref and resource-env-ref (I don't use them with JBoss, WebLo or WebSphere), and I really messed a lot. Thanks again, Jean-Noel On Mar 15, 2006, at 12:55 AM, johnxmas wrote: On Mar 14, 2006, at 7:58 AM, johnxmas wrote: Hi List, I have a Resource Adapter (both inbound and outbound) and an MDB. When the MBD is called, it tries to use the oubound part of the RA, looking up for the ConnectionFactory, the InteractionSpec and the ConnectionSpec (the two laters having been deployead as admin objects) My questions: a) how are the jndi-names of this three objects declared in geronimo-ra.xml We don't have global jndi context, so the jndi names you can use are really determined by the ejb-jar.xml + openejb-jar.xml. The name you specify in the geronimo-ra.xml for the admin object also has something to do with it :-) Here is my geronimo-ra.xml ?xml version=1.0 encoding=UTF-8? connector xmlns=http://geronimo.apache.org/xml/ns/j2ee/connector; configId=ScortJcaAdapter15 version=1.5 resourceadapter resourceadapter-instance resourceadapter-nameScortJcaAdapter15/resourceadapter-name workmanager gbean-linkDefaultWorkManager/gbean-link /workmanager /resourceadapter-instance outbound-resourceadapter connection-definition connectionfactory- interfacejavax.resource.cci.ConnectionFactory/connectionfactory- interface connectiondefinition-instance namedemoInbound.managedConnectionFactory/name implemented- interfacecom.scort.ctg.cics.eci.jca.EciConnectionFactory/ implemented-interface connectionmanager xa-transaction transaction-caching/ /xa-transaction single-pool max-size10/max-size blocking-timeout-milliseconds5000/blocking-timeout- milliseconds match-one/ /single-pool /connectionmanager /connectiondefinition-instance /connection-definition /outbound-resourceadapter /resourceadapter adminobject adminobject- interfacecom.scort.ctg.cics.eci.jca.EciConnectionSpecInterface/ adminobject-interface adminobject- classcom.scort.ctg.cics.eci.jca.EciConnectionSpec/adminobject-class adminobject-instance message-destination-namedemoInbound.CS/message- destination-name config-property-setting name=userNameaa/config- property-setting config-property-setting name=passwordaa/config- property-setting /adminobject-instance /adminobject adminobject adminobject- interfacecom.scort.ctg.cics.eci.jca.EciInteractionSpecInterface/ adminobject-interface adminobject- classcom.scort.ctg.cics.eci.jca.EciInteractionSpec/adminobject- class adminobject-instance message-destination-namedemoInbound.IS/message- destination-name config-property-setting name=commareaLength2/ config-property-setting config-property-setting name=compactOutgoingDatatrue/ config-property-setting config-property-setting name=dumpCodePagecp037/config- property-setting config-property-setting name=executionTimeout1/ config-property-setting config-property-setting name=mode1/config-property- setting /adminobject-instance /adminobject /connector b) must my MDB have a resource-ref entry on these objects ? It needs a resource-ref for the connection factory and a resource- env- ref for each of the InteractionSpec and ConnectionSpecs. We've added a resource-env-link element that may be helpful to shorten the openejb-jar.xml entry you will need, but I think it only works within an ear, so you may well have to specify the target admin object fully. BTW, my MDB is deployed as an ear Here are my ebj-jar.xml and openejb-jar.xml ?xml version=1.0 encoding=UTF-8? ejb-jar xmlns=http://java.sun.com/xml/ns/j2ee; 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/ejb-jar_2_1.xsd; version=2.1 enterprise-beans message-driven ejb-nameScortInboundCustListMdb/ejb-name ejb- classcom.scort.inbound.test.custlist.GeronimoInboundCustListMdb/ ejb-class messaging-typecom.scort.inbound.jca.api.InboundListener/ messaging-type transaction-typeContainer/transaction-type activation-config activation-config-property activation-config-property-nameid/activation-config- property-name activation-config-property-valueCUSTLIST/activation- config-property-value /activation-config-property activation-config-property activation-config-property-nameport
Re: Re: JNDI Question
On Mar 14, 2006, at 7:58 AM, johnxmas wrote: Hi List, I have a Resource Adapter (both inbound and outbound) and an MDB. When the MBD is called, it tries to use the oubound part of the RA, looking up for the ConnectionFactory, the InteractionSpec and the ConnectionSpec (the two laters having been deployead as admin objects) My questions: a) how are the jndi-names of this three objects declared in geronimo-ra.xml We don't have global jndi context, so the jndi names you can use are really determined by the ejb-jar.xml + openejb-jar.xml. The name you specify in the geronimo-ra.xml for the admin object also has something to do with it :-) Here is my geronimo-ra.xml ?xml version=1.0 encoding=UTF-8? connector xmlns=http://geronimo.apache.org/xml/ns/j2ee/connector; configId=ScortJcaAdapter15 version=1.5 resourceadapter resourceadapter-instance resourceadapter-nameScortJcaAdapter15/resourceadapter-name workmanager gbean-linkDefaultWorkManager/gbean-link /workmanager /resourceadapter-instance outbound-resourceadapter connection-definition connectionfactory-interfacejavax.resource.cci.ConnectionFactory/connectionfactory-interface connectiondefinition-instance namedemoInbound.managedConnectionFactory/name implemented-interfacecom.scort.ctg.cics.eci.jca.EciConnectionFactory/implemented-interface connectionmanager xa-transaction transaction-caching/ /xa-transaction single-pool max-size10/max-size blocking-timeout-milliseconds5000/blocking-timeout-milliseconds match-one/ /single-pool /connectionmanager /connectiondefinition-instance /connection-definition /outbound-resourceadapter /resourceadapter adminobject adminobject-interfacecom.scort.ctg.cics.eci.jca.EciConnectionSpecInterface/adminobject-interface adminobject-classcom.scort.ctg.cics.eci.jca.EciConnectionSpec/adminobject-class adminobject-instance message-destination-namedemoInbound.CS/message-destination-name config-property-setting name=userNameaa/config-property-setting config-property-setting name=passwordaa/config-property-setting /adminobject-instance /adminobject adminobject adminobject-interfacecom.scort.ctg.cics.eci.jca.EciInteractionSpecInterface/adminobject-interface adminobject-classcom.scort.ctg.cics.eci.jca.EciInteractionSpec/adminobject-class adminobject-instance message-destination-namedemoInbound.IS/message-destination-name config-property-setting name=commareaLength2/config-property-setting config-property-setting name=compactOutgoingDatatrue/config-property-setting config-property-setting name=dumpCodePagecp037/config-property-setting config-property-setting name=executionTimeout1/config-property-setting config-property-setting name=mode1/config-property-setting /adminobject-instance /adminobject /connector b) must my MDB have a resource-ref entry on these objects ? It needs a resource-ref for the connection factory and a resource-env- ref for each of the InteractionSpec and ConnectionSpecs. We've added a resource-env-link element that may be helpful to shorten the openejb-jar.xml entry you will need, but I think it only works within an ear, so you may well have to specify the target admin object fully. BTW, my MDB is deployed as an ear Here are my ebj-jar.xml and openejb-jar.xml ?xml version=1.0 encoding=UTF-8? ejb-jar xmlns=http://java.sun.com/xml/ns/j2ee; 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/ejb-jar_2_1.xsd; version=2.1 enterprise-beans message-driven ejb-nameScortInboundCustListMdb/ejb-name ejb-classcom.scort.inbound.test.custlist.GeronimoInboundCustListMdb/ejb-class messaging-typecom.scort.inbound.jca.api.InboundListener/messaging-type transaction-typeContainer/transaction-type activation-config activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property activation-config-property activation-config-property-nameport/activation-config-property-name activation-config-property-value23072/activation-config-property-value /activation-config-property /activation-config /message-driven /enterprise-beans assembly-descriptor container-transaction method ejb-nameScortInboundCustListMdb/ejb-name method-name*/method
Re: Re: Yet another ActivationSpec NotFound Problem
David, a) first, my ResourceAdapter is started b) then, my MDB is deployed. EndpointActivation() is called on the RA and it starts a Work to handle the EIS messages (This work implements a ServerSocket) All is right. But... c) On the console appears the message Redeploying scortJcaAdapter15.rar: stop() is called on the RA. All resources are then deleted (including the ServerSocket) and start() is called anew on the RA When the EIS calls the RA, there is no more ServerSocket listening ! Why this redeployment of the adapter ? I have no idea!! Can you tell us the exact sequence of operations you use to make this happen? I would start by trying to deploy your rar and ejb app from the command line: I think it is more likely to be reliable that deploying from the console. a) I don't deploy from the console: the RA and the MDB EAR are in the deploy directory and are deployed when Geronimo starts The RA is deployed Then the ear 09:06:15,198 INFO [Hot Deployer] Deploying scortInboundMdbCustList.ear .. 09:06:23,417 INFO [ServerSocketWork] [EMAIL PROTECTED] - on port 23072 - s tart Deployed EARPlan `- inboundCustListMdb.jar Then the RA is stopped and redeployed 09:06:23,589 INFO [Hot Deployer] Redeploying scortJcaAdapter15.rar The console does not say anything about ear getting undeployed. b) I tried deploying with nothing in the deploy directory, using the deploy tool (deployer.jar). It does work !! I then stopped and restarted Geronimo, and it still works: no more redeploying of the RA. Great as last for my goals: I can go on with my tests. Must I fill a JIRA for the problem when deploying from the deploy directory ? I haven't checked recently exactly how the relationships are set up between the services involved, but I wonder if the reason nothing works after the redeploy is that the mdb was stopped when the resource adapter was stopped, and we don't restart dependent components automatically. BTW, when an MDB is deployed before its Resource Adapter, it would be a good thing to retry deploying it ! Thanks, Jean-Noël Hope this helps, david jencks
JNDI Question
Hi List, I have a Resource Adapter (both inbound and outbound) and an MDB. When the MBD is called, it tries to use the oubound part of the RA, looking up for the ConnectionFactory, the InteractionSpec and the ConnectionSpec (the two laters having been deployead as admin objects) My questions: a) how are the jndi-names of this three objects declared in geronimo-ra.xml b) must my MDB have a resource-ref entry on these objects ? Thanks Jean-Noël
Re: Re: Yet another ActivationSpec NotFound Problem
David, First of all, thanks for your patience and your help. I found my problem: it was a typo in ra.xml and MessageLisener was not the same in ra.xml and ejb-jar.xml ! Shame on me ! Alas, things continue not to function. a) first, my ResourceAdapter is started b) then, my MDB is deployed. EndpointActivation() is called on the RA and it starts a Work to handle the EIS messages (This work implements a ServerSocket) All is right. But... c) On the console appears the message Redeploying scortJcaAdapter15.rar: stop() is called on the RA. All resources are then deleted (including the ServerSocket) and start() is called anew on the RA When the EIS calls the RA, there is no more ServerSocket listening ! Why this redeployment of the adapter ? Jean-Noël I don't see what is wrong, everything looks correct to me. I would investigate by stepping through ConnectorModuleBuilder.getActivationSpecInfoMap in a debugger while deploying the rar and ConnectorModuleBuilder.locateActivationSpecInfo while deploying the mdb. The first method puts the needed info about all the activation specs into a gbean for later reference, and the second method retrieves it when the mdb needs it. thanks david jencks
Re: Re: Yet another ActivationSpec NotFound Problem
On Mar 8, 2006, at 7:48 AM, johnxmas wrote: Hi, I deploy an Inbound Resource Adapter at server level (and, no I don't want to include it in my ear). This RA have all is classes in a jar (including the infamous ActivationSpec :-D) I deploy an EAR with a message-driven bean. And bingo, at deployment time [ ] 93% 25s Loading scortInboundCustListMdb16:14:53,2 99 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED s tate: objectName=geronimo.server:EJBModule=inboundCustListMdb.jar,J2EEAppli cati on=scortInboundCustListMdb,J2EEServer=geronimo,j2eeType=JCAActivationS pec,name=S cortInboundCustListMdb java.lang.ClassNotFoundException: com.scort.inbound.jca.socket.impl.SocketActiva tionSpec at java.net.URLClassLoader$1.run(URLClassLoader.java:199) I expected the Resource Adapter class loader to be a parent of the EAR class loader ! What did you do to make this be the case? I didn't do anything. I just assumed that that, in the openebj-jar.xml, the parentId or the resource-link element, where there to do the trick Assuming you are using geronimo 1.0 or trunk/head, your ra plan should have something like this: . configId=myGroupId/myJCAAdapter/1.0/car and the ear should include up before the dependencies (IIRC) import groupIdmyGroupId/groupId typecar/type artifactIdmyJCAAdapter/artifactId version1.0/version /import This specifies that one of the parent classloaders of the ear is the classloader of the deployed jca adapter. Sorry to insist, but there are informations I miss. I deploy my Adapter by dropping the archive in the deploy directory, putting nothing in the repository dir. So, What is my groupId ? What is car ? In which file for the ear must I specifiy the import element and how do I specify dependencies ? Very basic questions indeed, but I'm quite lost. Thanks for your answer... Jean-Noël
Re: Re: Re: Yet another ActivationSpec NotFound Problem
(generated) at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethod Invoker.java:38) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperatio n.java:118) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance. java:835) at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java: 178) at org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doD eploy(AbstractDeployCommand.java:106) at org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(Dis tributeCommand.java:59) at java.lang.Thread.run(Thread.java:534) Jean-Noël Hi, U can create a EAR plan (geronimo-application.xml) that contains the EJB plan (openejb-jar.xml). The configIds and parentIds can be configured in such a way so that dependencies are resolved. EAR plan : configID=EARPlan ParentID=ScortJcaAdapter15 EAR contains EJB plan(openejb-jar.xml) ConfigID=EJBPlan ParentID=EARPlan or U can set parent of EJB plan to RA plan ConfigID=EJBPlan ParentID=ScortJcaAdapter15 or U can try configID for geronimo-ra.xml . configId=myGroupId/myJCAAdapter/1.0/car and the ear should include the following import import groupIdmyGroupId/groupId typecar/type artifactIdmyJCAAdapter/artifactId version1.0/version /import myGroupID and myJCAAdapter are names u can give for RA plan and are used in import for EAR plan. Regards Krish Regarding GroupID/Car these are On 3/9/06, johnxmas [EMAIL PROTECTED] wrote: On Mar 8, 2006, at 7:48 AM, johnxmas wrote: Hi, I deploy an Inbound Resource Adapter at server level (and, no I don't want to include it in my ear). This RA have all is classes in a jar (including the infamous ActivationSpec :-D) I deploy an EAR with a message-driven bean. And bingo, at deployment time [ ] 93% 25s Loading scortInboundCustListMdb16:14:53,2 99 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED s tate: objectName=geronimo.server:EJBModule=inboundCustListMdb.jar,J2EEAppli cati on=scortInboundCustListMdb,J2EEServer=geronimo,j2eeType=JCAActivationS pec,name=S cortInboundCustListMdb java.lang.ClassNotFoundException: com.scort.inbound.jca.socket.impl.SocketActiva tionSpec at java.net.URLClassLoader$1.run(URLClassLoader.java:199) I expected the Resource Adapter class loader to be a parent of the EAR class loader ! What did you do to make this be the case? I didn't do anything. I just assumed that that, in the openebj-jar.xml, the parentId or the resource-link element, where there to do the trick Assuming you are using geronimo 1.0 or trunk/head, your ra plan should have something like this: . configId=myGroupId/myJCAAdapter/1.0/car and the ear should include up before the dependencies (IIRC) import groupIdmyGroupId/groupId typecar/type artifactIdmyJCAAdapter/artifactId version1.0/version /import This specifies that one of the parent classloaders of the ear is the classloader of the deployed jca adapter. Sorry to insist, but there are informations I miss. I deploy my Adapter by dropping the archive in the deploy directory, putting nothing in the repository dir. So, What is my groupId ? What is car ? In which file for the ear must I specifiy the import element and how do I specify dependencies ? Very basic questions indeed, but I'm quite lost. Thanks for your answer... Jean-Noël
Yet another ActivationSpec NotFound Problem
Hi, I deploy an Inbound Resource Adapter at server level (and, no I don't want to include it in my ear). This RA have all is classes in a jar (including the infamous ActivationSpec :-D) I deploy an EAR with a message-driven bean. And bingo, at deployment time [ ] 93% 25s Loading scortInboundCustListMdb16:14:53,2 99 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED s tate: objectName=geronimo.server:EJBModule=inboundCustListMdb.jar,J2EEApplicati on=scortInboundCustListMdb,J2EEServer=geronimo,j2eeType=JCAActivationSpec,name=S cortInboundCustListMdb java.lang.ClassNotFoundException: com.scort.inbound.jca.socket.impl.SocketActiva tionSpec at java.net.URLClassLoader$1.run(URLClassLoader.java:199) I expected the Resource Adapter class loader to be a parent of the EAR class loader ! Any help will be welcomed Jean-Noël Here are my deployment descriptors: For the Adapter Ra.xml __ ?xml version=1.0 encoding=UTF-8? connector xmlns=http://java.sun.com/xml/ns/j2ee; 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/connector_1_5.xsd; version=1.5 descriptionEIS Resource Adapter 1.5/description display-nameEIS JCA Adapter 1.5/display-name vendor-nameSCORT/vendor-name eis-typeServeur EIS/eis-type resourceadapter-version4.0/resourceadapter-version license descriptionCopyright (c) 2005 SCPRT/description license-requiredfalse/license-required /license resourceadapter resourceadapter-classcom.scort.inbound.jca.InboundResourceAdapter/resourceadapter-class outbound-resourceadapter connection-definition managedconnectionfactory-classcom.scort.ctg.cics.eci.jca.EciManagedConnectionFactory/managedconnectionfactory-class config-property descriptionURL of the CTG/description config-property-nameConnectionUrl/config-property-name config-property-typejava.lang.String/config-property-type config-property-valuetcp:localhost:2006/config-property-value /config-property config-property descriptionServer Name/description config-property-nameServerName/config-property-name config-property-typejava.lang.String/config-property-type !-- config-property-value/config-property-value -- /config-property config-property descriptionJndi names of equivalent factories/description config-property-nameAlternateConfigsNames/config-property-name config-property-typejava.lang.String/config-property-type config-property-valuetcp:localhost:2006/config-property-value /config-property connectionfactory-interfacejavax.resource.cci.ConnectionFactory/connectionfactory-interface connectionfactory-impl-classcom.scort.ctg.cics.eci.jca.EciConnectionFactory/connectionfactory-impl-class connection-interfacejavax.resource.cci.Connection/connection-interface connection-impl-classcom.scort.ctg.cics.eci.jca.EciConnection/connection-impl-class /connection-definition transaction-supportLocalTransaction/transaction-support authentication-mechanism authentication-mechanism-typeBasicPassword/authentication-mechanism-type credential-interfacejavax.resource.spi.security.PasswordCredential/credential-interface /authentication-mechanism reauthentication-supporttrue/reauthentication-support /outbound-resourceadapter inbound-resourceadapter messageadapter messagelistener messagelistener-typecom.scort.inbound.jca.api.InboundListener/messagelistener-type activationspec activationspec-classcom.scort.inbound.jca.socket.impl.SocketActivationSpec/activationspec-class required-config-property config-property-nameid/config-property-name /required-config-property required-config-property config-property-nameport/config-property-name /required-config-property /activationspec /messagelistener /messageadapter /inbound-resourceadapter adminobject adminobject-interfacecom.scort.ctg.cics.eci.jca.EciConnectionSpecInterface/adminobject-interface adminobject-classcom.scort.ctg.cics.eci.jca.EciConnectionSpec/adminobject-class config-property config-property-nameuserName/config-property-name config-property-typejava.lang.String/config-property-type /config-property config-property config-property-namepassword/config-property-name config-property-typejava.lang.String/config-property-type /config-property /adminobject adminobject
Mdb Deployment problem
Hi, No news from this problem I posted a week ago. It really prevents me from using Geronimo Thankds, Jean-Noël Nothing's jumping out at me. Can you post the results of jar -tfInboundCustListMdb.jar (the version where you put the classes in theJAR and the JAR in the EAR)? jar -tf InboundCustListMdb.jarcom/scort/com/scort/inbound/com/scort/inbound/test/com/scort/inbound/test/custlist/com/scort/inbound/test/custlist/GeronimoInboundCustListMdb.classcom/META-INF/application.xmlMETA-INF/ejb-jar.xmlMETA-INF/MANIFEST.MFMETA-INF/ Also, you might try putting both the resource adapter RAR and the EJBJAR in the same EAR and then omitting the parentId in openejb-jar.xmland see if that changes things. Regarding this option, I really want to deploy the Adapter at server level Jean-Noël Thanks, Aaron On 2/8/06, johnxmas [EMAIL PROTECTED] wrote: When deploying an EAR containing an MDB, listening to an inbound Resource Adapter, I get the following exception org.apache.geronimo.common.DeploymentException: Unable to initialize EJBContaine r GBean: ejbNameInboundCustListMdb at org.openejb.deployment.MdbBuilder.createBean(MdbBuilder.java:212) ... Caused by: java.lang.ClassNotFoundException: com.scort.inbound.test.custlist.Ger onimoInboundCustListMdb at java.net.URLClassLoader$1.run(URLClassLoader.java:199) GeronimoInboundCustListMdb is the name of my MDB in the jar InboundCustListMdb.jar If I supress this jar, just putting the classes in the EAR, the deployment runs fine. I've checked and cross-checked my descriptors but can't get the reason (If this is just a typo somewhere, sorry but I really don't see it :-D) Here are my deployment descriptors ?xml version="1.0" encoding="UTF-8"? application version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" 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_1_4.xsd" display-nameInboundCustListMdb/display-name description/description module ejbInboundCustListMdb.jar/ejb /module /application ___ ?xml version="1.0" encoding="UTF-8"? ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" 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/ejb-jar_2_1.xsd" version="2.1" enterprise-beans message-driven ejb-nameInboundCustListMdb/ejb-name ejb-classcom.scort.inbound.test.custlist.GeronimoInboundCustListMdb/ejb-class messaging-typecom.scort.inbound.jca.InboundListener/messaging-type transaction-typeContainer/transaction-type activation-config activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property activation-config-property activation-config-property-nameport/activation-config-property-name activation-config-property-value23072/activation-config-property-value /activation-config-property /activation-config /message-driven /enterprise-beans assembly-descriptor container-transaction method ejb-nameInboundCustListMdb/ejb-name method-name*/method-name /method trans-attributeNotSupported/trans-attribute /container-transaction /assembly-descriptor /ejb-jar __ openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar" xmlns:naming="http://geronimo.apache.org/xml/ns/naming" xmlns:security="http://geronimo.apache.org/xml/ns/security" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment" configId="InboundCustListMdb" parentId="ScortJcaAdapter15" enterprise-beans message-driven ejb-nameInboundCustListMdb/ejb-name resource-adapter resource-linkScortJcaAdapter15/resource-link /resource-adapter activation-config activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property /activation-config /message-driven /enterprise-beans /openejb-jar
Re: Re: MDB deployment problem
Nothing's jumping out at me. Can you post the results of jar -tf InboundCustListMdb.jar (the version where you put the classes in the JAR and the JAR in the EAR)? jar -tf InboundCustListMdb.jar com/scort/ com/scort/inbound/ com/scort/inbound/test/ com/scort/inbound/test/custlist/ com/scort/inbound/test/custlist/GeronimoInboundCustListMdb.class com/ META-INF/application.xml META-INF/ejb-jar.xml META-INF/MANIFEST.MF META-INF/ Also, you might try putting both the resource adapter RAR and the EJB JAR in the same EAR and then omitting the parentId in openejb-jar.xml and see if that changes things. Regarding this option, I really want to deploy the Adapter at server level Jean-Noël Thanks, Aaron On 2/8/06, johnxmas [EMAIL PROTECTED] wrote: When deploying an EAR containing an MDB, listening to an inbound Resource Adapter, I get the following exception org.apache.geronimo.common.DeploymentException: Unable to initialize EJBContaine r GBean: ejbNameInboundCustListMdb at org.openejb.deployment.MdbBuilder.createBean(MdbBuilder.java:212) ... Caused by: java.lang.ClassNotFoundException: com.scort.inbound.test.custlist.Ger onimoInboundCustListMdb at java.net.URLClassLoader$1.run(URLClassLoader.java:199) GeronimoInboundCustListMdb is the name of my MDB in the jar InboundCustListMdb.jar If I supress this jar, just putting the classes in the EAR, the deployment runs fine. I've checked and cross-checked my descriptors but can't get the reason (If this is just a typo somewhere, sorry but I really don't see it :-D) Here are my deployment descriptors ?xml version=1.0 encoding=UTF-8? application version=1.4 xmlns=http://java.sun.com/xml/ns/j2ee; 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_1_4.xsd; display-nameInboundCustListMdb/display-name description/description module ejbInboundCustListMdb.jar/ejb /module /application ___ ?xml version=1.0 encoding=UTF-8? ejb-jar xmlns=http://java.sun.com/xml/ns/j2ee; 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/ejb-jar_2_1.xsd; version=2.1 enterprise-beans message-driven ejb-nameInboundCustListMdb/ejb-name ejb-classcom.scort.inbound.test.custlist.GeronimoInboundCustListMdb/ejb-class messaging-typecom.scort.inbound.jca.InboundListener/messaging-type transaction-typeContainer/transaction-type activation-config activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property activation-config-property activation-config-property-nameport/activation-config-property-name activation-config-property-value23072/activation-config-property-value /activation-config-property /activation-config /message-driven /enterprise-beans assembly-descriptor container-transaction method ejb-nameInboundCustListMdb/ejb-name method-name*/method-name /method trans-attributeNotSupported/trans-attribute /container-transaction /assembly-descriptor /ejb-jar __ openejb-jar xmlns=http://www.openejb.org/xml/ns/openejb-jar; xmlns:naming=http://geronimo.apache.org/xml/ns/naming; xmlns:security=http://geronimo.apache.org/xml/ns/security; xmlns:sys=http://geronimo.apache.org/xml/ns/deployment; configId=InboundCustListMdb parentId=ScortJcaAdapter15 enterprise-beans message-driven ejb-nameInboundCustListMdb/ejb-name resource-adapter resource-linkScortJcaAdapter15/resource-link /resource-adapter activation-config activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property /activation-config /message-driven /enterprise-beans /openejb-jar
MDB deployment problem
When deploying an EAR containing an MDB, listening to an inbound Resource Adapter, I get the following exception org.apache.geronimo.common.DeploymentException: Unable to initialize EJBContaine r GBean: ejbNameInboundCustListMdb at org.openejb.deployment.MdbBuilder.createBean(MdbBuilder.java:212) ... Caused by: java.lang.ClassNotFoundException: com.scort.inbound.test.custlist.Ger onimoInboundCustListMdb at java.net.URLClassLoader$1.run(URLClassLoader.java:199) GeronimoInboundCustListMdb is the name of my MDB in the jar InboundCustListMdb.jar If I supress this jar, just putting the classes in the EAR, the deployment runs fine. I've checked and cross-checked my descriptors but can't get the reason (If this is just a typo somewhere, sorry but I really don't see it :-D) Here are my deployment descriptors ?xml version=1.0 encoding=UTF-8? application version=1.4 xmlns=http://java.sun.com/xml/ns/j2ee; 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_1_4.xsd; display-nameInboundCustListMdb/display-name description/description module ejbInboundCustListMdb.jar/ejb /module /application ___ ?xml version=1.0 encoding=UTF-8? ejb-jar xmlns=http://java.sun.com/xml/ns/j2ee; 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/ejb-jar_2_1.xsd; version=2.1 enterprise-beans message-driven ejb-nameInboundCustListMdb/ejb-name ejb-classcom.scort.inbound.test.custlist.GeronimoInboundCustListMdb/ejb-class messaging-typecom.scort.inbound.jca.InboundListener/messaging-type transaction-typeContainer/transaction-type activation-config activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property activation-config-property activation-config-property-nameport/activation-config-property-name activation-config-property-value23072/activation-config-property-value /activation-config-property /activation-config /message-driven /enterprise-beans assembly-descriptor container-transaction method ejb-nameInboundCustListMdb/ejb-name method-name*/method-name /method trans-attributeNotSupported/trans-attribute /container-transaction /assembly-descriptor /ejb-jar __ openejb-jar xmlns=http://www.openejb.org/xml/ns/openejb-jar; xmlns:naming=http://geronimo.apache.org/xml/ns/naming; xmlns:security=http://geronimo.apache.org/xml/ns/security; xmlns:sys=http://geronimo.apache.org/xml/ns/deployment; configId=InboundCustListMdb parentId=ScortJcaAdapter15 enterprise-beans message-driven ejb-nameInboundCustListMdb/ejb-name resource-adapter resource-linkScortJcaAdapter15/resource-link /resource-adapter activation-config activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property /activation-config /message-driven /enterprise-beans /openejb-jar
Re: Re: Re: ActivationSpec problem (ClassCastException)
Can you file a JIRA issue for this? Thanks, Aaron Done https://issues.apache.org/jira/browse/GERONIMO-1546 Thanks for your help Jean-Noël On 1/23/06, johnxmas [EMAIL PROTECTED] wrote: Sorry for the delay to answer Keeping public int port; public int getPort(); I tried each setter separately - setPort(int port) ClassCastException - setPort(Integer port) ClassCastException - setPort(String port) OK So, it seems that setting an int property, you can only use a String setter with Geronimo and that you can only implement ONE setter in the ActivationSpec, which is really ennoying Jean-Noel On Jan 19, 2006, at 1:01 AM, johnxmas wrote: Hi Aaron, a) I tried with just one setter and getter private int port; public int getPort() public void setPortl(int port) throws InvalidPropertyException and the problem persists.
Re: Re: ActivationSpec problem (ClassCastException)
Sorry for the delay to answer Keeping public int port; public int getPort(); I tried each setter separately - setPort(int port) ClassCastException - setPort(Integer port) ClassCastException - setPort(String port) OK So, it seems that setting an int property, you can only use a String setter with Geronimo and that you can only implement ONE setter in the ActivationSpec, which is really ennoying Jean-Noel On Jan 19, 2006, at 1:01 AM, johnxmas wrote: Hi Aaron, a) I tried with just one setter and getter private int port; public int getPort() public void setPortl(int port) throws InvalidPropertyException and the problem persists. Unfortunately the spec doesn't provide any guidance on what types are allowed for activation spec properties. Reasonable conclusions might be, - only string - only types allowed for ManagedConnectionFactory properties - only strings and primitive types. We might support only types allowed for MCF properties, which rules out primitive types. Could you try Integer and String and report the results? thanks david jencks b) If I suppress the property port in all descriptors and force the value in my ActivationSpec, the MDB deploys with no problem. I m a bit puzzled there. If I can be of any help for investigating deeper, let me know Thanks for your help Jean-Noel I wonder if the problem is due to the multiple setters. Can you temporarily try with an ActivationSpec class with only one int setter (assuming the getter and private variable are also ints) and see if that solves the problem? It so, it would suggest that we need to try harder to distinguish the proper setter to call in the face of overloading like that. If that doesn't help, maybe we have a problem with setting primitives or something? Thanks, Aaron On 1/18/06, johnxmas [EMAIL PROTECTED] wrote: Hi, id is String As regards port, it's an int. But the ActivationSpec implements three setters (each required due to WebLogic, Jboss, Sun and others implementations of their application server): - with an int parameter - with an Integer parameter - with a String parameter Jean-Noël Hmm... It looks like we're trying to set the wrong data type on the properties. Can you check the data types of the port and id properties? Thanks, Aaron On 1/17/06, johnxmas [EMAIL PROTECTED] wrote: I've written an InboundResourceAdapter. When deploying my MessageDrivenBean, with the following descriptor openejb-jar xmlns=http://www.openejb.org/xml/ns/openejb-jar; xmlns:naming=http://geronimo.apache.org/xml/ns/naming; xmlns:security=http://geronimo.apache.org/xml/ns/security; xmlns:sys=http://geronimo.apache.org/xml/ns/deployment; configId=InboundMdb parentId=ScortJcaAdapter15 enterprise-beans message-driven ejb-nameInboundMdb/ejb-name resource-adapter resource-linkScortJcaAdapter15/resource-link /resource-adapter activation-config activation-config-property activation-config-property-nameport/ activation-config-property-name activation-config-property- value23072/activation-config-property-value /activation-config-property activation-config-property activation-config-property-nameid/ activation-config-property-name activation-config-property- valueCUSTLIST/activation-config-property-value /activation-config-property /activation-config /message-driven /enterprise-beans /openejb-jar I encounter the following problem (using geronimo 1.0) (BTW, it reminds me of GERONIMO-689) 17:26:08,054 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: objectName=geronimo.server:EJBModule=InboundMdb,J2EEApplication=n ull,J2EEServer=geronimo,j2eeType=JCAActivationSpec,name=InboundMdb java.lang.ClassCastException at com.scort.inbound.jca.socket.impl.SocketActivationSpec$ $FastClassByCGLIB$$7d9f9cac.invoke(generated) at net.sf.cglib.reflect.FastMethod.invoke (FastMethod.java:53) at org.apache.geronimo.gbean.DynamicGBeanDelegate $Operation.invoke(DynamicGBeanDelegate.java:181) at org.apache.geronimo.gbean.DynamicGBeanDelegate.setAttribute (DynamicGBeanDelegate.java:134) at org.apache.geronimo.connector.ActivationSpecWrapperGBean.setAttrib ute(ActivationSpecWrapperGBean.java:68) at org.apache.geronimo.gbean.runtime.GBeanAttribute $DynamicSetterMethodInvoker.invoke(GBeanAttribute.java:430) at org.apache.geronimo.gbean.runtime.GBeanAttribute.setValue (GBeanAttribute.java:403) at org.apache.geronimo.gbean.runtime.GBeanAttribute.inject (GBeanAttribute.java:334
geronimo-ra.xml question
I've written my on ResourceAdapter Must I set a parentId in geronimo-ra.xml ? And if yes, which one ? Thanks
ActivationSpec problem (ClassCastException)
I've written an InboundResourceAdapter. When deploying my MessageDrivenBean, with the following descriptor openejb-jar xmlns=http://www.openejb.org/xml/ns/openejb-jar; xmlns:naming=http://geronimo.apache.org/xml/ns/naming; xmlns:security=http://geronimo.apache.org/xml/ns/security; xmlns:sys=http://geronimo.apache.org/xml/ns/deployment; configId=InboundMdb parentId=ScortJcaAdapter15 enterprise-beans message-driven ejb-nameInboundMdb/ejb-name resource-adapter resource-linkScortJcaAdapter15/resource-link /resource-adapter activation-config activation-config-property activation-config-property-nameport/activation-config-property-name activation-config-property-value23072/activation-config-property-value /activation-config-property activation-config-property activation-config-property-nameid/activation-config-property-name activation-config-property-valueCUSTLIST/activation-config-property-value /activation-config-property /activation-config /message-driven /enterprise-beans /openejb-jar I encounter the following problem (using geronimo 1.0) (BTW, it reminds me of GERONIMO-689) 17:26:08,054 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: objectName=geronimo.server:EJBModule=InboundMdb,J2EEApplication=null,J2EEServer=geronimo,j2eeType=JCAActivationSpec,name=InboundMdb java.lang.ClassCastException at com.scort.inbound.jca.socket.impl.SocketActivationSpec$$FastClassByCGLIB$$7d9f9cac.invoke(generated) at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) at org.apache.geronimo.gbean.DynamicGBeanDelegate$Operation.invoke(DynamicGBeanDelegate.java:181) at org.apache.geronimo.gbean.DynamicGBeanDelegate.setAttribute(DynamicGBeanDelegate.java:134) at org.apache.geronimo.connector.ActivationSpecWrapperGBean.setAttribute(ActivationSpecWrapperGBean.java:68) at org.apache.geronimo.gbean.runtime.GBeanAttribute$DynamicSetterMethodInvoker.invoke(GBeanAttribute.java:430) at org.apache.geronimo.gbean.runtime.GBeanAttribute.setValue(GBeanAttribute.java:403) at org.apache.geronimo.gbean.runtime.GBeanAttribute.inject(GBeanAttribute.java:334) at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:925) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:325) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:110) at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:132) at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:537) at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:208) at org.apache.geronimo.kernel.config.Configuration.startRecursiveGBeans(Configuration.java:315) at org.apache.geronimo.kernel.config.Configuration$$FastClassByCGLIB$$7f4b4a9b.invoke(generated) at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835) at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178) at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:173) at org.apache.geronimo.kernel.config.ConfigurationManagerImpl.start(ConfigurationManagerImpl.java:142) at org.apache.geronimo.kernel.config.ConfigurationManagerImpl$$FastClassByCGLIB$$fbed85d2.invoke(generated) at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:800) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:36) at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) at org.apache.geronimo.kernel.config.ConfigurationManager$$EnhancerByCGLIB$$49a67291.start(generated) at org.apache.geronimo.console.configmanager.DeploymentPortlet.processAction(DeploymentPortlet.java:126) at