Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
openshift中的Java RMI端口绑定错误_Java_Spring_Tomcat_Rmi_Openshift - Fatal编程技术网

openshift中的Java RMI端口绑定错误

openshift中的Java RMI端口绑定错误,java,spring,tomcat,rmi,openshift,Java,Spring,Tomcat,Rmi,Openshift,我开发了一个基于Spring的小型web应用程序来测试SpringRMI。在这里,我创建了一个简单的服务,根据输入参数生成问候语消息并将其返回给客户端。我的spring上下文文件如下所示: <bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"> <property name="port" value="4777"/> </bean> &

我开发了一个基于Spring的小型web应用程序来测试SpringRMI。在这里,我创建了一个简单的服务,根据输入参数生成问候语消息并将其返回给客户端。我的spring上下文文件如下所示:

<bean id="registry" 
class="org.springframework.remoting.rmi.RmiRegistryFactoryBean">

  <property name="port" value="4777"/>

</bean>

<bean id="greetingService" class="com.greeting.GreetingServiceImpl" >
</bean>

<bean class="org.springframework.remoting.rmi.RmiServiceExporter"
      p:service-ref="greetingService"
      p:serviceName="greetingRmiService"
      p:serviceInterface="com.greeting.GreetingService"
      p:registry-ref="registry"
/>

首先,我在运行tomcat server 7的本地pc上部署了该应用程序,并成功部署。 然后我将这个应用程序的war文件上传到Openshift tomcat 7 DIY服务器。但是它没有部署我的应用程序,并且在日志文件中给出了这个错误


严重:上下文初始化失败
org.springframework.beans.factory.BeanCreationException:创建在ServletCo中定义了名称为“registry”的bean时出错
ntext资源[/WEB-INF/applicationContext.xml]:调用init方法失败;嵌套的异常是java.rmi.service
r、 ExportException:已在使用的端口:4777;嵌套异常是:
java.net.BindException:权限被拒绝
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowir
eCapableBeanFactory.java:1420)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireC
apableBeanFactory.java:519)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCap
ableBeanFactory.java:456)
位于org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
位于org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanReg
istry.java:222)
位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
位于org.springframework.beans.factory.support.DefaultListableBeanFactory.PreInstanceSingleton(DefaultListab
leBeanFactory.java:567)
位于org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractAppl
(上下文:java:895)
位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
位于org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282)
位于org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204)
位于org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
位于org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
位于org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
位于org.apache.catalina.startup.HostConfig.deploy目录(HostConfig.java:1100)
位于org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1618)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
在java.util.concurrent.FutureTask.run(FutureTask.java:166)中
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:722)
原因:java.rmi.server.ExportException:端口已在使用中:4777;嵌套异常是:
java.net.BindException:权限被拒绝
位于sun.rmi.transport.tcp.tcpttransport.listen(tcpttransport.java:328)
位于sun.rmi.transport.tcp.tcpttransport.exportObject(tcpttransport.java:236)
位于sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:411)
位于sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147)
位于sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:207)
在sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:123)中
位于sun.rmi.registry.RegistryImpl。(RegistryImpl.java:109)
位于java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:203)
位于org.springframework.remoting.rmi.rmRegistryFactoryBean.getRegistry(rmRegistryFactoryBean.java:267)
位于org.springframework.remoting.rmi.rmRegistryFactoryBean.getRegistry(rmRegistryFactoryBean.java:236)
位于org.springframework.remoting.rmi.rmRegistryFactoryBean.getRegistry(rmRegistryFactoryBean.java:193)
位于org.springframework.remoting.rmi.rmRegistryFactoryBean.AfterPropertieSet(rmRegistryFactoryBean.java:164)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAuto
wireCapableBeanFactory.java:1477)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowir
eCapableBeanFactory.java:1417)
... 26多
原因:java.net.BindException:权限被拒绝

如何修复此错误并在Openshift中部署此应用程序

谢谢

已在使用的端口:4777

使用尚未使用的端口


或者在重新启动应用程序之前确保应用程序已真正停止。

在OpenShift中,可以绑定到端口范围为15000-35530的内部IP。所以,你不能用4477。使用15000-35530之间的任何值。另外,请理解这些是内部端口,这意味着您只能从应用程序内部使用它们。更多信息请访问

我已运行“netstat a | grep$OPENSHIFT_INTERNAL_IP”检查当前运行的端口。但4447号港口不在那里。而且我还随机尝试了不同的端口(10999999等)。但是他们没有工作。尝试所有不同的方法是不实际的