浏览 1252 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-04-18 关键字: 远程调用
我的服务端和客户端都是tomcat,在客户端servlet中调用远程服务端接口,用spring的rmi,httpinvoker等方式均不能拿到;可是单独在客户端启动测试代码没有问题,请各位大师指教,,,
服务端配置: remoting-servlet.xml <beans> <!-- 然后,我们将使用 RmiServiceExporter 来暴露我们的服务: --> <bean name="/AccountService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <!--bean class="org.springframework.remoting.rmi.RmiServiceExporter"--> <!-- does not necessarily have to be the same name as the bean to be exported --> <!--property name="serviceName" value="AccountService" /--> <property name="service" ref="userAndregionService" /> <property name="serviceInterface" value="com.xxx.usermanager.service.IUserService" /> <!-- defaults to 1099 --> <!--property name="registryPort" value="1199" /--> </bean> </beans> web.xml ... <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-beans.xml /WEB-INF/remoting-servlet.xml</param-value> </context-param> <servlet> <servlet-name>remoting</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> </servlet> ... 客户端配置: spring-client.xml ... <bean id="accountService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean" lazy-init="true"> <property name="serviceUrl" value="http://localhost:8080/newserver/AccountService" /> <property name="serviceInterface" value="com.xxx.usermanager.service.IUserService" /> </bean> ... servlet coding: public class LoginController extends AbstractController { private Account account; private String helloWord; private String viewPage; protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { String classpath = this.getClass().getResource("/").getPath(); String xmlPath = "spring-client.xml"; String Config_File = classpath + xmlPath; // this ctx ApplicationContext ctx = new ClassPathXmlApplicationContext(xmlPath); Account iu = (Account) ctx.getBean("iu"); System.out.println(iu.isAuthSystemUser("1111", "1111")); ... 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2007-04-18
mubuc 写道 feidi 写道 web.xml
... <param-value>/WEB-INF/spring-beans.xml /WEB-INF/remoting-servlet.xml</param-value> ... ... 别的都不用看,单看红字这一句,就知道你的配错了. /WEB-INF/remoting-servlet.xml这个文件不要配.它是 org.springframework.web.servlet.DispatcherServlet这个servlet自去按照名称自已找. <servlet> <servlet-name>remoting</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>3</load-on-startup> </servlet> <servlet-mapping> <servlet-name>remoting</servlet-name> <url-pattern>/http/*</url-pattern> </servlet-mapping> 这样就可以找到remoting-servlet.xml了.... 你搞定了要谢谢我才行.... <servlet> <servlet-name>remoting</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>remoting</servlet-name> <url-pattern>/AccountService</url-pattern> </servlet-mapping> 上面是我的servlet配置,按照你的方案,还是不行 我的出错信息,跳在ie里了 java.lang.NoClassDefFoundError: com/xxxx/usermanager/service/IUserService java.lang.Class.getDeclaredMethods0(Native Method) java.lang.Class.privateGetDeclaredMethods(Class.java:2365) java.lang.Class.getDeclaredMethods(Class.java:1763) java.beans.Introspector$1.run(Introspector.java:1265) java.security.AccessController.doPrivileged(Native Method) java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1263) java.beans.Introspector.getTargetMethodInfo(Introspector.java:1129) java.beans.Introspector.getBeanInfo(Introspector.java:387) java.beans.Introspector.getBeanInfo(Introspector.java:159) org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:142) org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:83) org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:239) org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:197) org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:180) org.springframework.beans.BeanWrapperImpl.<init>(BeanWrapperImpl.java:133) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:641) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:626) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:381) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:140) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156) org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:640) com.xxxxx.otapush.web.servlet.LoginController.handleRequestInternal(LoginController.java:29) org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:820) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:755) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:360) javax.servlet.http.HttpServlet.service(HttpServlet.java:709) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) |
|
| 返回顶楼 | |
|
时间:2007-04-18
mubuc 写道 feidi 写道 java.lang.NoClassDefFoundError: com/xxxx/usermanager/service/IUserService
java.lang.Class.getDeclaredMethods0(Native Method) ............. 这就是说你发布的服务接口IUserService,这个interface,在你的客户端也要有,现在是没有,所以报这个错. 看样子,你的服务已经发布成功了,就是客户端还没有搞好. 是啊,是啊,可是我用testcase测试也没有IUserService接口啊。。。是不是tomcat的容器对这种方法什么限制呢,各位大师有没有成功的案例呢? |
|
| 返回顶楼 | |
|
时间:2007-04-19
mubuc 写道 feidi 写道 是啊,是啊,可是我用testcase测试也没有IUserService接口啊。。。是不是tomcat的容器对这种方法什么限制呢,各位大师有没有成功的案例呢? 真搞不懂,单元测试,怎么会在ie里报错?没道理测试不用IUserService接口?可以不可把代码都贴出来 多谢mubuc... |
|
| 返回顶楼 | |


