Sto eseguendo un server di messaggi activemq incorporato nella mia applicazione su openshift. Secondo this, è possibile eseguire il binding solo su 15000 - 35530
. Ho provato a fare quanto segue, ma sta generando un errore grave. Quale potrebbe essere il problema?Impossibile collegarsi a una porta su Openshift
Sto usando la primavera. Questa è una parte della mia applicationContext.xml
<amq:broker brokerName="tentacle-broker" start="true">
<amq:persistenceAdapter>
<amq:amqPersistenceAdapter directory="/var/lib/openshift/username/jbossews-2.0/jbossews-2.0/activemq2" maxFileLength="32mb"/>
</amq:persistenceAdapter>
<amq:transportConnectors>
<amq:transportConnector uri="tcp://127.10.180.129:15001"/>
</amq:transportConnectors>
</amq:broker>
Questo è l'errore che sto avendo
WARNING: could not generate unique stub
java.net.BindException: Permission denied
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:128)
at org.apache.activemq.util.IdGenerator.<clinit>(IdGenerator.java:54)
at org.apache.activemq.broker.region.RegionBroker.<clinit>(RegionBroker.java:81)
at org.apache.activemq.broker.BrokerService.createRegionBroker(BrokerService.java:1830)
at org.apache.activemq.broker.BrokerService.createRegionBroker(BrokerService.java:1824)
at org.apache.activemq.broker.BrokerService.createBroker(BrokerService.java:1781)
at org.apache.activemq.broker.BrokerService.getBroker(BrokerService.java:766)
at org.apache.activemq.broker.BrokerService.start(BrokerService.java:497)
at org.apache.activemq.broker.BrokerService.autoStart(BrokerService.java:463)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProces
r.java:293)
va:130)
ava:394)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1405)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:872)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:963)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1600)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
:
La porta potrebbe essere in uso, l'utente che si utilizza per eseguire OpenShift non dispone di privilegi sufficienti per aprire una nuova porta o c'è un'altra applicazione che blocca la propria per aprire la porta. –
@LuiggiMendoza Secondo la documentazione di Openshift, sono libero di collegarmi a quella porta all'interno della mia applicazione. Non ci sono altri vincoli sulla porta '15001'. Sono ancora confuso perché non è permesso. –
Ancora, questo non è un problema di OpenShift, è un problema di utente/applicazione esterna che blocca OpenShift per aprire una nuova porta. Ad esempio, un firewall può bloccare la tua applicazione per legare una nuova porta per motivi di sicurezza. Conoscendo questo, il tuo problema non è nemmeno direttamente correlato alla programmazione. –