org.springframework.remoting.RemoteAccessException: Cannot deserialize result from [http://127.0.0.1:7001/WDS/workDateServer.remoting]; nested exception is java.lang.ClassNotFoundException: com.nstc.wds.model.NonWorkDays
java.lang.ClassNotFoundException: com.nstc.wds.model.NonWorkDays
        at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:219)
        at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:558)
        at org.springframework.remoting.rmi.CodebaseAwareObjectInputStream.resolveClass(CodebaseAwareObjectInputStream.java:79)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1513)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
        at java.util.ArrayList.readObject(ArrayList.java:554)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:838)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
        at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.doReadRemoteInvocationResult(AbstractHttpInvokerRequestExecutor.java:225)
        at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.readRemoteInvocationResult(AbstractHttpInvokerRequestExecutor.java:174)
        at org.springframework.remoting.httpinvoker.SimpleHttpInvokerRequestExecutor.doExecuteRequest(SimpleHttpInvokerRequestExecutor.java:64)
        at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:69)
        at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:146)
        at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:120)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
        at $Proxy20.findAllWorkDate(Unknown Source)
        at com.nstc.wds.server.WorkDateServerDWR.isWorkDate(WorkDateServerDWR.java:34)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java:239)
        at uk.ltd.getahead.dwr.impl.DefaultExecProcessor.handle(DefaultExecProcessor.java:48)
        at uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:81)
        at uk.ltd.getahead.dwr.AbstractDWRServlet.doPost(AbstractDWRServlet.java:162)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
        at com.nstc.web.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:30)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6987)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
16:03:24,609 WARN  [dwr.impl.DefaultExecProcessor] Erroring: id[8594_1301645004296] message[uk.ltd.getahead.dwr.OutboundVariable@97df94]
后台的报错信息如上所示,jar也导入了,sping的配置文件里也是有这样的类路径的。但是现在就是报找不到类。

解决方案 »

  1.   

    我用spring的http invoker来调用远程服务。启动weblogic时不报错,在用dwr调用时,就会报这样的错误
      

  2.   

    http://http://topic.csdn.net/u/20110331/21/f40f9246-1e84-4c82-ace2-1b3ec420652c.html
    昨天项目的问题。已经解决,今天是报找不到类。
    http://topic.csdn.net/u/20110331/21/f40f9246-1e84-4c82-ace2-1b3ec420652c.html
    各位高手帮忙看看。
      

  3.   

    http://127.0.0.1:7001/WDS/workDateServer.remoting这个地址对吗?  你的ACTION 后缀是配置的remoting?还是应该http://127.0.0.1:7001/WDS/workDateServer/remoting
      

  4.   

    我的服务器端web.xml<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
                             "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
     
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    /WEB-INF/datasource.xml
    classpath:applicationContext.xml
    </param-value>
    </context-param> <listener>
    <listener-class>
    org.springframework.web.context.ContextLoaderListener
    </listener-class>
    </listener> <servlet>
    <servlet-name>remoting</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext-Remoting.xml</param-value>
    </init-param>
    <!--
    <load-on-startup>101</load-on-startup>
    -->
    </servlet> <servlet-mapping>
    <servlet-name>remoting</servlet-name>
    <url-pattern>*.remoting</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <resource-ref>
    <res-ref-name>nstc/jdbc/WebData</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    </web-app>配置的是.remoting
    我的applicationContext-remoting.xml<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans> <!--  将业务服务bean暴露成远程服务-->
    <bean name="/workDateServer.remoting" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
    <property name="service" ref="workDateServer" />
    <!--  指定暴露的远程服务实现的接口-->
    <property name="serviceInterface" value="com.nstc.wds.server.WDSService"/>
    </bean>
        
    </beans>wds.properties文件:wds.server=http\://127.0.0.1\:7001/WDS
    hibernate配置文件<hibernate-mapping>
        <class name="com.nstc.wds.model.NonWorkDays" table="Non_Work_Days" >调用的Java代码public String isWorkDate(String selectedDate,String flag){
    System.out.println("======================WorkDateServerDWR start=====================");
    //
    WDSService wdsServiceImpl=RemotingServiceFactory.getInstance().getWorkDateServer();

    List list=wdsServiceImpl.findAllNonWorkDayModels();
    ....
    }RemotingServiceFactory:private static final long serialVersionUID = -6695584746331295833L;

    private static Object lockObj = new Object();

    private ApplicationContext content; 

    private static RemotingServiceFactory factory;

    private WDSService workDateServer;

    private RemotingServiceFactory(){
    content = new ClassPathXmlApplicationContext("WDSClientAppContent.xml");
    workDateServer=(WDSService) content.getBean("workDateServer");
    }

    public static RemotingServiceFactory getInstance(){
    if(factory == null){
    synchronized (lockObj) {
    if(factory == null){
    factory = new RemotingServiceFactory();
    }
    }
    }
    return factory;
    } public WDSService getWorkDateServer() {
    return workDateServer;
    } public void setWorkDateServer(WDSService workDateServer) {
    this.workDateServer = workDateServer;
    }
    能想到的影响程序的地方几乎都想到了,可就是一直报这个错。
    控制台中是可以看见打印的======================WorkDateServerDWR start=====================这个字符串的。
    各位老大帮帮忙。
      

  5.   

    就是招不到com.nstc.wds.model.NonWorkDays类下的某个方法
    或者是你的页面数据传到model中的时候,字段类型不匹配,或者是超出范围
      

  6.   

    是不是  hibernate 的映射出错了?
      

  7.   

    上面报的是类找不到的异常,页面数据应该可排除,我没有向model中传数据。
    字段类型不匹配或超出范围是hibernat的配置文件里有错误吗?
      

  8.   


    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        <class name="com.nstc.wds.model.NonWorkDays" table="Non_Work_Days" >
            <id name="id" type="java.lang.Integer">
                <column name="ID" />
                <generator class="native" />
            </id>
            <property name="workdate" type="java.util.Date">
                <column name="WORKDATE" length="23" not-null="true" />
            </property>
            <property name="flag" type="java.lang.Integer">
                <column name="FLAG" not-null="true" />
            </property>
            <property name="createtime" type="java.util.Date">
                <column name="CREATETIME" length="23" />
            </property>
            <property name="updatetime" type="java.util.Date">
                <column name="UPDATETIME" length="23" />
            </property>
        </class>
    </hibernate-mapping>这是整个的hibernate配置文件,我看一遍,没有发现哪里不对啊。
      

  9.   

    在程序里打印我的服务,服务里调用的DAO对象都不是空,DAO对象方法里能执行到 getHibernateTemplate().find(queryString);方法前,执行这个方法时就报类找不到的异常。