Я пытался запустить предварительно скомпилированный исполняемый файл, который запускает службу XMPP, но безрезультатно. Это проект, где исполняемый файл был от http://sourceforge.net/projects/androidpn/.
Моя установка - это один ящик (ОС сервера Ubuntu) с двумя IP-адресами (давайте назовем их IP1 и IP2). Каждый раз, когда я пытаюсь запустить сервер XMPP, я получаю сообщение об ошибке "Адрес уже используется" из исполняемого файла Java. Используемые XMPP порты свободны, и, чтобы быть уверенным, я убедился, что Apache прослушивает только порты на IP1. Однако я все еще не могу запустить сервер XMPP.
Будет ли проблема с тем, как настроены мои 2 IP-адреса? Или я что-то пропустил?
Заранее спасибо.
Редактировать: Благодаря Полу, netstat -pant
показывает эту конкретную строку (5222 - это порт, используемый сервером XMPP):
tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN 14085/citserver
Я предполагаю, что 0.0.0.0 относится ко всем IP-адресам. Поскольку у меня есть два IP-адреса на этом поле, будет ли способ заставить citserver/webcit/citadel прослушивать только первый IP-адрес, освобождая тот же порт для предварительно скомпилированного XMPP на втором IP-адресе?
ps часть журнала, который описывает ошибку:
{INFO } [2012-06-13 11:23:22,578] <org.hibernate.impl.SessionFactoryImpl> : closing
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ioAcceptor' defined in class path resource [spring-config.xml]: Invocation of init method failed; nested exception is java.net.BindException: Address already in use
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at org.androidpn.server.xmpp.XmppServer.start(XmppServer.java:91)
at org.androidpn.server.xmpp.XmppServer.<init>(XmppServer.java:76)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at org.androidpn.server.starter.ServerStarter.start(ServerStarter.java:82)
at org.androidpn.server.starter.ServerStarter.main(ServerStarter.java:48)
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:137)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:77)
at org.apache.mina.transport.socket.nio.NioSocketAcceptor.open(NioSocketAcceptor.java:251)
at org.apache.mina.transport.socket.nio.NioSocketAcceptor.open(NioSocketAcceptor.java:48)
at org.apache.mina.core.polling.AbstractPollingIoAcceptor.registerHandles(AbstractPollingIoAcceptor.java:523)
at org.apache.mina.core.polling.AbstractPollingIoAcceptor.access$200(AbstractPollingIoAcceptor.java:65)
at org.apache.mina.core.polling.AbstractPollingIoAcceptor$Acceptor.run(AbstractPollingIoAcceptor.java:407)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
{INFO } [2012-06-13 11:23:22,596] <org.androidpn.server.xmpp.XmppServer> : XmppServer stopped