继续昨天的项目,现在的问题是找不到指定类

cs02308 2011-04-01 04:34:10

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的配置文件里也是有这样的类路径的。但是现在就是报找不到类。
...全文
281 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cs02308 2011-04-02
  • 打赏
  • 举报
回复
没人遇到过这样的问题吗?各位老大帮忙解决一下啊。
cs02308 2011-04-02
  • 打赏
  • 举报
回复
问题还没解决,各位老大谁帮忙给看看啊。
cs02308 2011-04-02
  • 打赏
  • 举报
回复
在程序里打印我的服务,服务里调用的DAO对象都不是空,DAO对象方法里能执行到 getHibernateTemplate().find(queryString);方法前,执行这个方法时就报类找不到的异常。
cs02308 2011-04-02
  • 打赏
  • 举报
回复

<?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配置文件,我看一遍,没有发现哪里不对啊。
cs02308 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 huozhicheng 的回复:]

就是招不到com.nstc.wds.model.NonWorkDays类下的某个方法
或者是你的页面数据传到model中的时候,字段类型不匹配,或者是超出范围
[/Quote]
上面报的是类找不到的异常,页面数据应该可排除,我没有向model中传数据。
字段类型不匹配或超出范围是hibernat的配置文件里有错误吗?
野生大猫 2011-04-02
  • 打赏
  • 举报
回复
是不是 hibernate 的映射出错了?
Horrison 2011-04-02
  • 打赏
  • 举报
回复
就是招不到com.nstc.wds.model.NonWorkDays类下的某个方法
或者是你的页面数据传到model中的时候,字段类型不匹配,或者是超出范围
cs02308 2011-04-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 a312983516 的回复:]

http://127.0.0.1:7001/WDS/workDateServer.remoting

这个地址对吗? 你的ACTION 后缀是配置的remoting?

还是应该http://127.0.0.1:7001/WDS/workDateServer/remoting
[/Quote]
我的服务器端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=====================这个字符串的。
各位老大帮帮忙。
a312983516 2011-04-01
  • 打赏
  • 举报
回复
http://127.0.0.1:7001/WDS/workDateServer.remoting

这个地址对吗? 你的ACTION 后缀是配置的remoting?

还是应该http://127.0.0.1:7001/WDS/workDateServer/remoting
cs02308 2011-04-01
  • 打赏
  • 举报
回复
cs02308 2011-04-01
  • 打赏
  • 举报
回复
我用spring的http invoker来调用远程服务。启动weblogic时不报错,在用dwr调用时,就会报这样的错误
mouzeming 2011-04-01
  • 打赏
  • 举报
回复
你把情况再说清楚点

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧