最近在给客户的应用软件中,有个模块一直报错,而别的模块都能正常使用,这个模块与别的模块不一样地方就是:这个模块使用了rmi技术调用,只要调用这个模块就报错误,信息如下:
2010-06-01 15:08:47 [ERROR] com.nstrong.itop.web.action.knowledge.KnowledgeAction {KnowledgeAction.java:601} - org.springframework.remoting.RemoteLookupFailureException: Lookup of RMI stub failed; nested exception is java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.EOFException
org.springframework.remoting.RemoteLookupFailureException: Lookup of RMI stub failed; nested exception is java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.EOFException
Caused by: java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.EOFException
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
at org.springframework.remoting.rmi.RmiClientInterceptor.lookupStub(RmiClientInterceptor.java:198)
at org.springframework.remoting.rmi.RmiClientInterceptor.getStub(RmiClientInterceptor.java:235)
at org.springframework.remoting.rmi.RmiClientInterceptor.invoke(RmiClientInterceptor.java:255)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy1.loadAllRootKnowledgeBaseType(Unknown Source)
at com.nstrong.itop.web.manager.knowledge.KnowledgeWebManager.getKnowledgeTypeList(KnowledgeWebManager.java:287)
at com.nstrong.itop.web.manager.knowledge.KnowledgeWebManager.loadAllKnowledgeTypeTree(KnowledgeWebManager.java:592)
at com.nstrong.itop.web.manager.knowledge.KnowledgeWebManager$$FastClassByCGLIB$$fe89b220.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:695)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
at com.nstrong.itop.web.framework.LogAroundInterceptor.invoke(LogAroundInterceptor.java:27)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:630)
at com.nstrong.itop.web.manager.knowledge.KnowledgeWebManager$$EnhancerByCGLIB$$48c93fa6.loadAllKnowledgeTypeTree(<generated>)
at com.nstrong.itop.web.action.knowledge.KnowledgeAction.configKnowledgeType(KnowledgeAction.java:597)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at com.nstrong.itop.web.framework.actionInterface.BaseAction.execute(BaseAction.java:237)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.nstrong.itop.web.framework.CharsetFilter.doFilter(CharsetFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at sun.rmi.server.MarshalInputStream.readLocation(Unknown Source)
at sun.rmi.server.MarshalInputStream.resolveClass(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
... 49 more
自己百般尝试[修改rmi配置文件,有的说是:权限问题,有的说是有同一class,后来一一尝试修改]:而且只有在客户那里才报错,将代码放到别的电脑都没有问题,后来修改rmi调用的配置文件中的rmi端口,居然好了,原来是rmi端口冲突造成的,可从日志没有看出来,至少自己没有看出来。郁闷了我十几个小时,所以贴出来,希望给同仁一些提示!
分享到:
相关推荐
端口冲突通常发生在多服务共存的环境中,当两个或多个服务尝试绑定到同一个端口时,就会发生端口冲突。端口冲突会导致服务启动失败或者不稳定,进而影响到系统的正常运行。在本例中,主要涉及的端口有1099、1098和...
- **端口冲突**:RMI默认使用1099端口,可能与其他应用冲突,可更改RMI注册表端口。 - **安全性**:RMI默认使用匿名连接,可能需要配置SSL或特定的安全策略文件。 - **异常处理**:处理`RemoteException`,特别是...
Idea启动项目报端口号冲突或被占用的解决方法是指在使用IntelliJ IDEA开发环境时,遇到端口号冲突或被占用问题的解决方法。这种问题通常会导致项目启动失败,影响开发效率。了解解决方法可以帮助开发人员快速解决...
3. **端口占用**:RMI默认使用特定端口(如1099),如果这些端口被其他服务占用,或者防火墙策略限制了端口通信,RMI服务可能无法启动或通信失败。 4. **序列化问题**:RMI依赖于对象的序列化和反序列化,如果调用...
4. 问题排查:常见的问题包括端口冲突、注册表未启动、网络不通等,可以通过`rmid`、`rmiregistry`的日志进行分析。 总结,RMI是Java中实现分布式计算的重要工具,它简化了跨网络对象交互的过程。理解并熟练掌握RMI...
- **RMI端口**:用于远程方法调用,默认端口为1099。 ```xml ,type=jrmp"> <attribute name="RMIObjectPort">4444 ,type=pooled"> <attribute name="ServerBindPort">4445 ``` ### 2. 修改`server.xml` ...
了解这些端口的用途可以帮助我们避免端口冲突,同时在诊断网络问题时,检查这些端口的状态也十分重要。 在实际运维中,我们可以通过JBoss提供的管理控制台或命令行工具来查看和调整这些设置。例如,可以修改`...
1. **解决端口冲突问题**:如果您的机器上已经运行了一个Tomcat实例,并且占用了8080端口,那么您将无法直接启动JBoss,因为默认情况下JBoss也会尝试绑定到8080端口。通过修改端口号,可以避免这种冲突。 2. **支持...
首先,关键在于避免各个JBoss实例之间的端口冲突。端口是网络服务间的通信通道,如果多个服务共享同一个端口,会导致服务间的干扰,因此每个JBoss实例必须拥有自己独特的端口设置。JBoss的主要端口配置通常在以下几...
3. TongWeb 启动时还会随机选择两个端口,为了便于防火墙配置和避免冲突,可以通过 `-Dtongweb.jconsole.cbport` 和 `-Dtongweb.rmijmx.cbport` 参数来固定这两个端口,比如 `-Dtongweb.jconsole.cbport=5555 -...
### 解决端口冲突问题 在使用过程中,可能会遇到端口被占用导致的错误,例如Java RMI服务使用的1099端口。 #### 6. 处理端口冲突 - 当出现"Port already in use: 1099"的异常时,可以通过命令行解决。打开CMD(Win...
实验的目的是通过自定义端口进行通信,这在实际的网络应用开发中是非常常见的需求,因为不同的服务通常会运行在不同的端口上,以避免冲突。 首先,让我们来解析一下提供的文件: 1. `Client.java`: 这个文件包含了...
在多Java应用运行的环境中,为了避免端口冲突,我们需要修改这些端口设置。例如,通过编辑`$JAVA_HOME/jre/lib/security/java.security`文件可以更改JMX的端口号。 使用JDK1.6解压版的步骤大致如下: 1. **下载与...
- 修改默认的Tomcat端口(例如,从8080改为8081),以避免端口冲突 - 同样,调整其他服务端口,如FTP和RMI,以保持网络服务的清晰性 ### 6. 设置Solr分离部署 - 安装单独的Solr服务器,解压并配置Solr的Alfresco...
- **jboss-service.xml**:位于`jboss-4.0.2\server\default\conf`目录下,包含RMI相关的端口配置(如1098、1099等)。 - **uil2-service.xml**:位于`jboss-4.0.2\server\default\deploy\jms`目录下,涉及到JMS服务...
在开始配置session共享之前,你需要准备多个Tomcat实例,确保它们之间不会发生端口冲突。每个实例的`server.xml`配置文件需要修改以下三个端口: 1. HTTP监听端口(Connector的port属性) 2. AJP监听端口...
2. **端口冲突检查**:确保所选择的端口号没有被其他服务占用。 3. **防火墙配置**:如果服务器上开启了防火墙,记得开放相应的端口。 4. **资源限制**:根据实际需求调整 `-Xmx` 和 `-Xss` 的值,避免资源浪费或...
例如,用户可以根据需要设置JVM堆内存大小,修改应用访问端口以避免端口冲突,设置TongWeb6.1的日志以记录系统运行信息,关闭不必要的访问日志以减少系统开销,设置并发线程数以控制同时处理的请求数量,修改HTTP...