cancel
Showing results for 
Search instead for 
Did you mean: 

Command Line Export exception

chozero
Champ in-the-making
Champ in-the-making
Hi,
I trying to export on Linux shell using a script as described in:
http://forums.alfresco.com/viewtopic.php?t=2425

but I get the exception:

Error creating bean with name 'serverConnector' defined in class path resource [alfresco/core-services-context.xml]: Initialization of bean failed; nested exception is java.io.IOException: Cannot bind to URL [rmi://localhost:50500/alfresco/jmxrmi]: javax.naming.NameAlreadyBoundException: alfresco/jmxrmi [Root exception is java.rmi.AlreadyBoundException: alfresco/jmxrmi]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverConnector' defined in class path resource [alfresco/core-services-context.xml]: Initialization of bean failed; nested exception is java.io.IOException: Cannot bind to URL [rmi://localhost:50500/alfresco/jmxrmi]: javax.naming.NameAlreadyBoundException: alfresco/jmxrmi [Root exception is java.rmi.AlreadyBoundException: alfresco/jmxrmi]
java.io.IOException: Cannot bind to URL [rmi://localhost:50500/alfresco/jmxrmi]: javax.naming.NameAlreadyBoundException: alfresco/jmxrmi [Root exception is java.rmi.AlreadyBoundException: alfresco/jmxrmi]
        at javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:814)
        at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:431)
        at org.springframework.jmx.support.ConnectorServerFactoryBean.afterPropertiesSet(ConnectorServerFactoryBean.java:183)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1059)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:363)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:269)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:320)
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:87)
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:72)
        at org.alfresco.util.ApplicationContextHelper.getApplicationContext(ApplicationContextHelper.java:48)
        at org.alfresco.tools.Tool.initialiseRepository(Tool.java:246)
        at org.alfresco.tools.Tool.start(Tool.java:212)
        at org.alfresco.tools.Export.main(Export.java:65)
Caused by: javax.naming.NameAlreadyBoundException: alfresco/jmxrmi [Root exception is java.rmi.AlreadyBoundException: alfresco/jmxrmi]
        at com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:118)
        at com.sun.jndi.toolkit.url.GenericURLContext.bind(GenericURLContext.java:208)
        at javax.naming.InitialContext.bind(InitialContext.java:359)
        at javax.management.remote.rmi.RMIConnectorServer.bind(RMIConnectorServer.java:635)
        at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:427)
        … 13 more
Caused by: java.rmi.AlreadyBoundException: alfresco/jmxrmi
        at sun.rmi.registry.RegistryImpl.bind(RegistryImpl.java:123)
        at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
        at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
        at java.lang.Thread.run(Thread.java:595)
        at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
        at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
        at com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:116)
        … 17 more

I have read this is caused by another instance running, but I checked and it's only alfresco running.

Could someone give some advice on how to attack this problem?
3 REPLIES 3

fool
Champ in-the-making
Champ in-the-making
I have also run into this error when attempting to start Alfresco, generally after multiple start ups/shutdowns of the server.  Does Alfresco have problems disassociating a binding to the rmi registry on shutdown?  I also have not had any success finding a description of how to "restart" the rmi service so if anyone has any bright ideas on that front it would be appreciated.

The issue can be resolved simply by changing the host name of the machine which the rmi server automatically associates itself with, but this doesn't seem an acceptable solution.

tobi
Champ in-the-making
Champ in-the-making
I have exactly the same error here on my machine if I try to run the following shellscript to backup a space:

export TOMCAT_HOME=/opt/Alfresco/tomcat ;
export PATH=${PATH}:${TOMCAT_HOME};
export IMPORT_LIB=./webapps/alfresco/WEB-INF/lib
export IMPORT_COMMON=./common/lib
export JAVA_CLASSPATH=./webapps/alfresco/WEB-INF/lib
export IMPORT_CLASSES=./webapps/alfresco/WEB-INF/classes
cd $TOMCAT_HOME

for i in $TOMCAT_HOME/$IMPORT_LIB/*.jar ;
do export JAVA_CLASSPATH=${JAVA_CLASSPATH}:$i ;
done

for i in $TOMCAT_HOME/$IMPORT_COMMON/mysql*.jar ;
do export JAVA_CLASSPATH=${JAVA_CLASSPATH}:$i ;
done
export JAVA_CLASSPATH=${JAVA_CLASSPATH}:${IMPORT_CLASSES} ;
/opt/Alfresco/java/bin/java -cp $JAVA_CLASSPATH org.alfresco.tools.Export -user admin -pwd xxx -s workspace://localization -verbose localization.acp

Error:

Alfresco Repository Exporter
The following error has occurred:
Error creating bean with name 'serverConnector' defined in class path resource [alfresco/core-services-context.xml]: Initialization of bean failed; nested exception is java.io.IOException: Cannot bind to URL [rmi://localhost:50500/alfresco/jmxrmi]: javax.naming.NameAlreadyBoundException: alfresco/jmxrmi [Root exception is java.rmi.AlreadyBoundException: alfresco/jmxrmi]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverConnector' defined in class path resource [alfresco/core-services-context.xml]: Initialization of bean failed; nested exception is java.io.IOException: Cannot bind to URL [rmi://localhost:50500/alfresco/jmxrmi]: javax.naming.NameAlreadyBoundException: alfresco/jmxrmi [Root exception is java.rmi.AlreadyBoundException: alfresco/jmxrmi]
java.io.IOException: Cannot bind to URL [rmi://localhost:50500/alfresco/jmxrmi]: javax.naming.NameAlreadyBoundException: alfresco/jmxrmi [Root exception is java.rmi.AlreadyBoundException: alfresco/jmxrmi]
   at javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:814)
   at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:431)
   at org.springframework.jmx.support.ConnectorServerFactoryBean.afterPropertiesSet(ConnectorServerFactoryBean.java:183)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1059)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:363)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:226)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:147)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:269)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:320)
   at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:87)
   at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:72)
   at org.alfresco.util.ApplicationContextHelper.getApplicationContext(ApplicationContextHelper.java:48)
   at org.alfresco.tools.Tool.initialiseRepository(Tool.java:246)
   at org.alfresco.tools.Tool.start(Tool.java:212)
   at org.alfresco.tools.Export.main(Export.java:65)
Caused by: javax.naming.NameAlreadyBoundException: alfresco/jmxrmi [Root exception is java.rmi.AlreadyBoundException: alfresco/jmxrmi]
   at com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:118)
   at com.sun.jndi.toolkit.url.GenericURLContext.bind(GenericURLContext.java:208)
   at javax.naming.InitialContext.bind(InitialContext.java:359)
   at javax.management.remote.rmi.RMIConnectorServer.bind(RMIConnectorServer.java:635)
   at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:427)
   … 13 more
Caused by: java.rmi.AlreadyBoundException: alfresco/jmxrmi
   at sun.rmi.registry.RegistryImpl.bind(RegistryImpl.java:123)
   at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
   at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375)
   at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
   at sun.rmi.transport.Transport$1.run(Transport.java:153)
   at java.security.AccessController.doPrivileged(Native Method)
   at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
   at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
   at java.lang.Thread.run(Thread.java:595)
   at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
   at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
   at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
   at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
   at com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:116)
   … 17 more

As far as i understand this log the problem is that the java function can't connect to port 50500. But I have no idea why it should.

I'm running tomcat on port 49500. Could this be the problem? Because in the error log is something with port 50500.

Or maybe because I'm using HSQLDB instead of mysql and this line is used in my export shellscript?

for i in $TOMCAT_HOME/$IMPORT_COMMON/mysql*.jar ;

Has anybody a hint for me what the reason could be and how to solve it?

Thanks in advance
Tobi

fool
Champ in-the-making
Champ in-the-making
I assume most people are running this on windows and if so I don't know a solution.  The problem is that even after alfresco is shut down there remains an instance of java running in the background.  On linux run ps -ef to show the processes running, find the PID associated with the java instance the alfresco user is running, and run kill -9 $pid, where $pid is whatever the PID is.