geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michele La Porta <michele.lapo...@gmail.com>
Subject geronimo + spring
Date Thu, 22 Sep 2005 14:29:00 GMT
I'm working around to find out how to deploy a simple spring
application on geronimo. I take a look on geronimo modules
spring-geronimo and geronimo-spring-builder, read something on forum
and I try start to create a simple springappl.spr( a jar + manifest
with classpath + spring.xml) running on Geronimo-1.0-M4 from Eclipse
start a minimal geronimo configuration and start the module
SpringDeployer..seeems to work if I use class from archive but when I
build archive springjms-0.1.spr in which i put :

 META-INF/

 META-INF/MANIFEST.MF

 	  Code:		
	
 (
 Class-Path:  geronimo-spec-jms-1.1-rc4.jar geronimo-kernel-1.0-M4.jar
  geronimo-transaction-1.0-M4.jar commons-logging-1.0.4.jar concurrent-
  1.3.4.jar mx4j-3.0.1.jar cglib-nodep-2.1.jar spring-1.1.3.jar activem
  q-core-3.1-M5.jar
 )
 	
 META-INF/bootstrap.properties

 	  Code:		
	
 (
 jms.connectionFactoryName=ConnectionFactory
 jms.jndiProviderUrl=tcp://localhost:61616
 jms.jndiContextFactory=org.activemq.jndi.ActiveMQInitialContextFactory
 jms.weatherTopic=weatherTopic
 jms.weatherRequestsTopic=weatherRequestsTopic
 )
 	
 META-INF/spring.xml

 	  Code:		
	
 (
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">

 <beans>

         <bean id="placeholderConfig"
                
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
                 <property name="location">
                         <value>classpath:/bootstrap.properties</value>
                 </property>
         </bean>

         <bean id="jndiTemplate"
                 class="org.springframework.jndi.JndiTemplate">
                 <property name="environment">
                         <props>
                                 <prop key="java.naming.factory.initial">
                                         ${jms.jndiContextFactory}
                                 </prop>

                                 <!-- Specific to ActiveMQ -->

                                 <!-- the address of the ActiveMQ broker -->
                                 <prop
key="brokerURL">${jms.jndiProviderUrl}</prop>
                                 <!-- Some Topics Registration, since
we are using a fake JNDI implementation
                                 <prop key="topic.${jms.weatherTopic}">
                                         ${jms.weatherTopic}
                                 </prop>
                                 <prop key="topic.${jms.weatherRequestsTopic}">
                                         ${jms.weatherRequestsTopic}
                                 </prop>-->
                         </props>
                 </property>
         </bean>
 </beans>
 )
 	
 SpringJmsTemplate.class

 	  Code:		
	
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.springframework.jms.core.JmsTemplate;

 public class SpringJmsTemplate implements Runnable{

    private JmsTemplate jmsTemplate;

     public SpringJmsTemplate() {
     }

     public void run() {
        boolean loop=true;
        while(loop){
           try {
               jmsTemplate.receive();
          } catch (Exception e) {
             e.printStackTrace();
             loop = false;
          }
        }

     }
     public static final GBeanInfo GBEAN_INFO;

     static {
         GBeanInfoBuilder infoFactory = new  
GBeanInfoBuilder(SpringJmsTemplate.class, "SpringJmsTemplate");

         //        infoFactory.addAttribute("kernel", Kernel.class, false);
         //        infoFactory.addAttribute("objectName", String.class, false);

         infoFactory.setConstructor(new String[]{});

         GBEAN_INFO = infoFactory.getBeanInfo();
     }

     public static GBeanInfo getGBeanInfo() {
         return GBEAN_INFO;
     }

    public JmsTemplate getJmsTemplate() {
       return jmsTemplate;
    }

    public void setJmsTemplate(JmsTemplate jmsTemplate) {
       this.jmsTemplate = jmsTemplate;
    }
 }
 	
 spring-jms-plan.xml

 	  Code:		
	
 <?xml version="1.0" encoding="UTF-8"?>

 <configuration
     xmlns="http://geronimo.apache.org/xml/ns/deployment"
     configId="deployment/SpringJmsTemplate"
     >

         <dependency>
         <!--
             <groupId>geronimo-spec</groupId>
             <artifactId>geronimo-spec-jms</artifactId>
             <version>1.1-rc4</version>
                 -->
             <uri>geronimo-spec/jars/geronimo-spec-jms-1.1-rc4.jar</uri>
         </dependency>

         <dependency>
         <!--
             <groupId>geronimo</groupId>
             <artifactId>geronimo-kernel</artifactId>
             <version>1.0-M4</version>
              -->
             <uri>geronimo/jars/geronimo-kernel-1.0-M4.jar</uri>
         </dependency>

         <dependency>
 <!--
             <groupId>geronimo</groupId>
             <artifactId>geronimo-transaction</artifactId>
             <version>1.0-M4</version>
 -->
             <uri>geronimo/jars/geronimo-transaction-1.0-M4.jar</uri>
         </dependency>

         <!-- Thirdparty Dependencies -->
         <dependency>
 <!--
             <groupId>commons-logging</groupId>
             <artifactId>commons-logging</artifactId>
             <version>1.0.3</version>
 -->
             <uri>commons-logging/jars/commons-logging-1.0.3.jar</uri>
         </dependency>

         <dependency>
 <!--
             <groupId>concurrent</groupId>
             <artifactId>concurrent</artifactId>
             <version>1.3.4</version>
  -->
             <uri>concurrent/jars/concurrent-1.3.4.jar</uri>
         </dependency>

         <dependency>
 <!--
             <groupId>mx4j</groupId>
             <artifactId>mx4j</artifactId>
             <version>3.0.1</version>
 -->
             <uri>mx4j/jars/mx4j-3.0.1.jar</uri>
         </dependency>

         <dependency>
 <!--
             <groupId>cglib</groupId>
             <artifactId>cglib-nodep</artifactId>
             <version>2.1</version>
 -->
             <uri>cglib/jars/cglib-nodep-2.1.jar</uri>
         </dependency>

       <dependency>
 <!--
         <id>springframework</id>
         <artifactId>spring</artifactId>
         <version>1.1.3</version>
 -->
             <uri>springframework/jars/spring-1.1.3.jar</uri>
       </dependency>
 <!--
       <dependency>
         <id>activemq</id>
         <artifactId>activemq-gbean</artifactId>
         <version>3.1-M5</version>
       </dependency>
  -->
       <dependency>
 <!--
         <id>activemq</id>
         <artifactId>activemq-core</artifactId>
         <version>3.1-M5</version>
 -->
          <uri>activemq/jars/activemq-core-3.1-M5.jar</uri>
       </dependency>

     <gbean name="SpringJmsTemplate"
            class="SpringJmsTemplate" >
        </gbean>
 </configuration>
 	

 error from console

 11:09:29,701 INFO  [SPRConfigBuilder] Planning:
c:\temp\deployer6526.tmpdir\springjms-0.1.spr
 11:09:29,701 INFO  [SPRConfigBuilder] getDeploymentPlan : planFile ->
C:\geronimo-1.0-M4\modules\assembly\target\geronimo-1.0-M4\spring-jms-plan.xml
sprFilec:\temp\deployer6526.tmpdir\springjms-0.1.spr
 11:09:29,701 INFO  [SPRConfigBuilder] Building:
c:\temp\deployer6526.tmpdir\springjms-0.1.spr
11:09:29,826 INFO [LocalConfigStore:config-store] Installed
configuration file:c:%5Ctemp%5Cdeployer6526.tmpdir%5Cspringjms-0.1.spr
in location 20
 11:09:29,873 INFO  [LocalConfigStore:config-store] Loaded
Configuration geronimo.config:name="file:c:%5Ctemp%5Cdeployer6526.tmpdir%5Cspringjms-0.1.spr"
 11:09:29,888 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.config:name="file:c:%5Ctemp%5Cdeployer6526.tmpdir%5Cspringjms-0.1.spr"
State changed from stopped to starting
 11:09:29,888 DEBUG [Configuration] ClassPath for
file:c:%5Ctemp%5Cdeployer6526.tmpdir%5Cspringjms-0.1.spr resolved to
[]
 11:09:29,888 INFO  [Configuration] Started configuration
file:c:%5Ctemp%5Cdeployer6526.tmpdir%5Cspringjms-0.1.spr
 11:09:29,888 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.config:name="file:c:%5Ctemp%5Cdeployer6526.tmpdir%5Cspringjms-0.1.spr"
State changed from starting to running
 11:09:29,951 INFO  [PersistentConfigurationList] Saved running
configuration list
 11:09:29,951 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.config:name=spring-jms-plan.xml State changed from stopped to
starting
 11:09:29,951 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.config:name=spring-jms-plan.xml State changed from starting
to running
 11:09:30,013 INFO  [PersistentConfigurationList] Saved running
configuration list
 11:09:30,013 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:name=spring-jms-plan.xml,J2EEServer=geronimo,J2EEApplication=null,j2eeType=SpringModule
State changed from stopped to starting
 11:09:30,013 INFO  [SpringGBean] _classPath[0]:
file:/C:/geronimo-1.0-M4/modules/assembly/target/geronimo-1.0-M4/config-store/20/
 11:09:30,076 INFO  [XmlBeanDefinitionReader] Loading XML bean
definitions from class path resource [META-INF/spring.xml]
11:09:30,076 DEBUG [XmlBeanDefinitionReader] Using JAXP implementation
[org.apache.xerces.jaxp.DocumentBuilderFactoryImpl@15bd8f]
11:09:30,732 DEBUG [BeansDtdResolver] Trying to resolve XML entity
with public ID [-//SPRING//DTD BEAN//EN] and system ID
[http://www.springframework.org/dtd/spring-beans.dtd]
 11:09:30,732 DEBUG [BeansDtdResolver] Trying to locate
[spring-beans.dtd] under [/org/springframework/beans/factory/xml/]
 11:09:30,732 DEBUG [BeansDtdResolver] Found beans DTD
[http://www.springframework.org/dtd/spring-beans.dtd] in classpath
 11:09:30,795 DEBUG [DefaultXmlBeanDefinitionParser] Loading bean definitions
 11:09:30,810 DEBUG [DefaultXmlBeanDefinitionParser] Default lazy init 'false'
 11:09:30,810 DEBUG [DefaultXmlBeanDefinitionParser] Default
dependency check 'none'
 11:09:30,810 DEBUG [DefaultXmlBeanDefinitionParser] Default autowire 'no'
 11:09:30,857 DEBUG [DefaultXmlBeanDefinitionParser] Found 2 <bean>
elements defining beans
 11:09:30,857 INFO  [SpringGBean$GeronimoBeanFactory] Creating shared
instance of singleton bean 'jndiTemplate'
11:09:30,857 DEBUG [SpringGBean$GeronimoBeanFactory] Creating instance
of bean 'jndiTemplate' with merged definition [Root bean with class
[org.springframework.jndi.JndiTemplate] defined in class path resource
[META-INF/spring.xml]]
 11:09:30,920 DEBUG [CachedIntrospectionResults] Getting BeanInfo for
class [org.springframework.jndi.JndiTemplate]
 11:09:30,920 DEBUG [CachedIntrospectionResults] Caching
PropertyDescriptors for class [org.springframework.jndi.JndiTemplate]
 11:09:30,920 DEBUG [CachedIntrospectionResults] Found property
'class' of type [java.lang.Class]
 11:09:30,920 DEBUG [CachedIntrospectionResults] Found property
'environment' of type [java.util.Properties]
 11:09:30,920 DEBUG [CachedIntrospectionResults] Class
[org.springframework.jndi.JndiTemplate] is cache-safe
11:09:30,920 DEBUG [BeanWrapperImpl] About to invoke write method
[public void org.springframework.jndi.JndiTemplate.setEnvironment(java.util.Properties)]
on object of class [org.springframework.jndi.JndiTemplate]
11:09:30,920 DEBUG [BeanWrapperImpl] Invoked write method [public void
org.springframework.jndi.JndiTemplate.setEnvironment(java.util.Properties)]
with value of type [java.util.Properties]
 11:09:30,920 DEBUG [SpringGBean$GeronimoBeanFactory] Invoking
BeanPostProcessors before initialization of bean 'jndiTemplate'
 11:09:30,920 DEBUG [SpringGBean$GeronimoBeanFactory] Invoking
BeanPostProcessors after initialization of bean 'jndiTemplate'
 11:09:30,951 INFO  [SpringGBean$GeronimoBeanFactory] Destroying
singletons in factory
{org.apache.geronimo.spring.SpringGBean$GeronimoBeanFactory defining
beans [placeholderConfig,jndiTemplate]; root of BeanFactory hierarchy}
 11:09:30,951 INFO  [SpringGBean$GeronimoBeanFactory] Destroying inner
beans in factory
{org.apache.geronimo.spring.SpringGBean$GeronimoBeanFactory defining
beans [placeholderConfig,jndiTemplate]; root of BeanFactory hierarchy}
 11:09:30,951 ERROR [GBeanInstanceState] Error while starting; GBean
is now in the FAILED state:
objectName="geronimo.server:name=spring-jms-plan.xml,J2EEServer=geronimo,J2EEApplication=null,j2eeType=SpringModule"
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'jndiTemplate' defined in class path resource
[META-INF/spring.xml]: Initialization of bean failed; nested exception
is java.lang.NoClassDefFoundError:
org/springframework/jndi/JndiCallback
 java.lang.NoClassDefFoundError: org/springframework/jndi/JndiCallback
         at java.lang.Class.getDeclaredMethods0(Native Method)
         at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
         at java.lang.Class.privateGetPublicMethods(Unknown Source)
         at java.lang.Class.getMethods(Unknown Source)
         at sun.misc.ProxyGenerator.generateClassFile(Unknown Source)
         at sun.misc.ProxyGenerator.generateProxyClass(Unknown Source)
         at java.lang.reflect.Proxy.getProxyClass(Unknown Source)
         at org.apache.geronimo.spring.SpringGBean.createProxyClass(SpringGBean.java:373)
         at org.apache.geronimo.spring.SpringGBean.createPOJOGBeanData(SpringGBean.java:322)
         at org.apache.geronimo.spring.SpringGBean.afterInitialization(SpringGBean.java:258)
         at org.apache.geronimo.spring.SpringGBean$1.postProcessAfterInitialization(SpringGBean.java:160)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:202)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:306)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:223)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:236)
         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:159)
         at org.apache.geronimo.spring.SpringGBean.doStart(SpringGBean.java:168)
         at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:850)
         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:328)
         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:111)
         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:133)
         at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:503)
         at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:205)
         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:141)
         at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:503)
         at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:205)
         at org.apache.geronimo.kernel.KernelGBean.startRecursiveGBean(KernelGBean.java:72)
         at org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
         at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
         at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:3
         at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
         at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:754)
         at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:175)
         at org.apache.geronimo.kernel.jmx.MBeanServerDelegate.invoke(MBeanServerDelegate.java:117)
         at javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown
Source)
         at javax.management.remote.rmi.RMIConnectionImpl.access$100(Unknown
Source)
         at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Unknown
Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unknown
Source)
         at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown
Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
         at sun.rmi.transport.Transport$1.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at sun.rmi.transport.Transport.serviceCall(Unknown Source)
         at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
Source)
         at java.lang.Thread.run(Unknown Source)
 11:09:30,951 DEBUG [GBeanInstanceState] GBeanInstanceState for:
geronimo.server:name=spring-jms-plan.xml,J2EEServer=geronimo,J2EEApplication=null,j2eeType=SpringModule
State changed from starting to failed
 11:12:57,680 DEBUG [JDBCPersistenceAdapter] Cleaning up old messages.
 11:12:57,680 DEBUG [JDBCPersistenceAdapter] Cleanup done.
 11:12:58,242 DEBUG [JournalPersistenceAdapter] Checkpoint started.
 11:12:58,242 DEBUG [JournalPersistenceAdapter] Checkpoint done.

Any idea?

Mime
View raw message