2013-05-20 7 views
5

पर एक पोर्ट से जुड़ने में असमर्थ मैं openshift पर अपने एप्लिकेशन में एक एम्बेडेड सक्रिय एमक्यू संदेश सर्वर चला रहा हूं। this के अनुसार, आप केवल 15000 - 35530 पर बाध्य कर सकते हैं। मैंने निम्नलिखित करने का प्रयास किया है, लेकिन यह एक गंभीर त्रुटि फेंक रहा है। मामला क्या हो सकता है?ओपनशेफ्ट

मैं वसंत का उपयोग कर रहा हूं। यह मेरा 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> 

में एक हिस्सा है यह त्रुटि है कि मैं

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) 
: 
+1

पोर्ट उपयोग में हो सकता है, जिसे आप ओपनशफ्ट निष्पादित करने के लिए उपयोग करते हैं, उसके पास एक नया बंदरगाह खोलने के लिए पर्याप्त विशेषाधिकार नहीं हैं या कोई अन्य एप्लिकेशन है जो पोर्ट को खोलने के लिए आपके ब्लॉक को अवरुद्ध करता है। –

+0

@LuiggiMendoza ओपनशेफ्ट दस्तावेज के अनुसार, मैं अपने आवेदन के भीतर उस बंदरगाह पर बांधने के लिए स्वतंत्र हूं। बंदरगाह '15001' पर कोई अन्य बाध्यकारी नहीं है। मैं अभी भी उलझन में हूं कि इसकी अनुमति क्यों नहीं है। –

+0

फिर, यह ओपनशफ्ट समस्या नहीं है, यह एक उपयोगकर्ता/बाहरी अनुप्रयोग समस्या है जो ओपनशफ्ट को एक नया बंदरगाह खोलने के लिए अवरुद्ध करता है। उदाहरण के लिए, फ़ायरवॉल सुरक्षा उद्देश्यों के लिए एक नए बंदरगाह को बांधने के लिए आपके एप्लिकेशन को अवरुद्ध कर सकता है। यह जानकर, आपकी समस्या प्रोग्रामिंग से सीधे संबंधित नहीं है। –

उत्तर

0

आ रही OpenShift में है, तो आप केवल बंदरगाह है कि सर्वर आप के लिए आवंटित करने के लिए बाध्य कर सकते हैं। आम तौर पर यह पर्यावरण परिवर्तनीय $ OPENSHIFT_JBOSS_PORT का मूल्य है (यह कारतूस के बीच भिन्न होता है) और मान गियर के बीच भिन्न होता है। किसी भी अन्य बंदरगाह के लिए बाध्यकारी एक SELinux नीति उल्लंघन के रूप में रिपोर्ट किया जाएगा और इनकार कर दिया।

+0

पोर्ट आमतौर पर 8080 है जो मेरा टॉमकैट पहले से ही उपयोग कर रहा है। मैं वास्तव में 'diy' इस्तेमाल किया। मेरे 'diy' में, मेरे पास' activemq' और 'tomcat' दोनों हैं। 'Activemq' को 'tcp' पोर्ट' 16005' पर चलाने के लिए सेटअप किया गया था जो' openshift' के अनुसार खुला है। मैंने पाया कि 'activemq' शुरू नहीं होता है, मुझे लगता है कि मेरे पास' अनुमति अस्वीकार कर दी गई थी 'जब तक कोई अन्य कारण न हो। तो मुझे नहीं लगता कि मैं एक ही पोर्ट '8080' पर दो बार बांध सकता हूं। –

+0

मैंने https://www.openshift.com/blogs/activemq-on-paas पर उदाहरण का उपयोग कर संदेश सर्वर के लिए एक और एप्लिकेशन बनाया है। संदेश सर्वर शुरू हुआ, लेकिन मेरा एप्लिकेशन टॉमकैट में चल रहा है, इससे कनेक्ट नहीं हो सका। मैंने 'tcp 15005' और 'http 8080' से कनेक्ट करने का प्रयास किया लेकिन कनेक्शन नहीं मिला। पहले i.e 'tcp 15005' ने 'java.net को फेंक दिया ..NoRouteToHostException' अपवाद और दूसरा' अनुमति अस्वीकार अपवाद '। –

+0

@Uchenna Nwanyanwu: क्या आपने इस समस्या को हल किया? मैं वही मिल रहा हूँ। http://stackoverflow.com/questions/39314900/how-to-open-tcp-port-in-openshift –

संबंधित मुद्दे