我已经使用Eclipse (4.3.2)和GWT对我的应用程序进行了更改,并在它工作的本地Tomcat上测试了它。但是,当我将它上传到主机服务器时(我做的是完全上传,而不仅仅是我更改的类),当我尝试使用它时,我会在日志中得到以下错误(登录):
INFO: Server startup in 20107 ms
Nov 04, 2014 5:41:33 PM org.apache.catalina.core.ApplicationContext log
INFO: mySQLConnection: ERROR: The serialization policy file '/org.AwardTracker.AwardTracker/C7227FD579DD02DA4BB5B3EBAD09AE79.gwt.rpc' was not found; did you forget to include it in this deployment?
Nov 04, 2014 5:41:33 PM org.apache.catalina.core.ApplicationContext log
INFO: mySQLConnection: WARNING: Failed to get the SerializationPolicy 'C7227FD579DD02DA4BB5B3EBAD09AE79' for module 'http://tc1165.metawerx.com.au/org.AwardTracker.AwardTracker/'; a legacy, 1.3.3 compatible, serialization policy will be used. You may experience SerializationExceptions as a result.
Nov 04, 2014 5:41:40 PM org.apache.catalina.core.ApplicationContext log
SEVERE: Exception while dispatching incoming RPC call
com.google.gwt.user.client.rpc.SerializationException: Type 'org.AwardTracker.client.ViewData' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer.For security purposes, this type will not be serialized.: instance = org.AwardTracker.client.ViewData@62066d5c
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:667)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:130)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:153)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:587)
at com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:605)
at com.google.gwt.user.server.rpc.RPC.encodeResponseForSuccess(RPC.java:471)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:563)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:265)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:305)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:277)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:536)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:309)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:169)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:297)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:191)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:187)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:186)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:277)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:536)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:309)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:249)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:191)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:187)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.
java:745)
0 [catalina-exec-12] INFO gwtupload.server.UploadServlet - UPLOAD-SERVLET init: maxSize=3145728, slowUploads=0, isAppEngine=false, corsRegex=^$
2 [catalina-exec-12] INFO gwtupload.server.UploadServlet - UPLOAD-ACTION init: removeSessionFiles=false, removeData=false我所做的改变是:在AccountUpdateView.java中添加了一个标签,并添加了一个TextBox来显示"Group“(客户端) AccountAndCubs.java,其中添加了要在AccountUpdateView.java (客户端) MySQLConnection.java中显示的新字段(get和set),其中我将新字段添加到sql (服务器端)
在我的搜索中,我发现了一些与此相关的信息,这些信息表明,我将“静态最终的长serialVersionUID =1L”添加到了我更改的类(AccountUpdateView.java)中,但我仍然得到了这个错误。
我注意到这句话:
SEVERE: Exception while dispatching incoming RPC call
com.google.gwt.user.client.rpc.SerializationException: Type 'org.AwardTracker.client.ViewData' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer.For security purposes, this type will not be serialized.: instance = org.AwardTracker.client.ViewData@62066d5c它表示"ViewData.java“的问题,但我没有更改,而且已经有:
package org.AwardTracker.client;
import java.io.Serializable;
public class ViewData implements Serializable {
private static final long serialVersionUID = 1L;你在这方面的帮助将不胜感激。另外,我不是很专业,还在学习,所以请耐心点,用简单的语言。
应要求增加:
ViewData代码:
package org.AwardTracker.client;
import java.io.Serializable;
public class ViewData implements Serializable {
private static final long serialVersionUID = 1L;
private String accountId;
private String accountLevel;
private String ymId;
private String awId;
private String adAwardGroup;
private String adScoutGroup;
public ViewData() {
//just here because GWT wants it.
}
public String getaccountId() {
return accountId;
}
public void setaccountId(String accountId) {
this.accountId = accountId;
}
public String getaccountLevel() {
return accountLevel;
}
public void setaccountLevel(String accountLevel) {
this.accountLevel = accountLevel;
}
public String getymId() {
return ymId;
}
public void setymId(String ymId) {
this.ymId = ymId;
}
public String getawId() {
return awId;
}
public void setawId(String awId) {
this.awId = awId;
}
public String getadAwardGroup() {
return adAwardGroup;
}
public void setadAwardGroup(String adAwardGroup) {
this.adAwardGroup = adAwardGroup;
}
public String getadScoutGroup() {
return adScoutGroup;
}
public void setadScoutGroup(String adScoutGroup) {
this.adScoutGroup = adScoutGroup;
}
}AccountsAndCubs.java代码(添加了“group”):
package org.AwardTracker.client;
import com.google.gwt.user.client.rpc.IsSerializable;
import java.util.Date;
public class AccountAndCubs implements IsSerializable {
static final long serialVersionUID = 1L;
//@SuppressWarnings("unused")
private String accountId;
//@SuppressWarnings("unused")
private String emailaddress;
//@SuppressWarnings("unused")
private String password;
//@SuppressWarnings("unused")
private String level;
//@SuppressWarnings("unused")
private String pack;
//@SuppressWarnings("unused")
private Integer enabled;
//@SuppressWarnings("unused")
private Date archived;
//@SuppressWarnings("unused")
private String group;
//@SuppressWarnings("unused")
private String acaId;
//@SuppressWarnings("unused")
private String cdId;
//@SuppressWarnings("unused")
private String surname;
//@SuppressWarnings("unused")
private String firstname;
@SuppressWarnings("unused")
private AccountAndCubs() {
//just here because GWT wants it.
}
public AccountAndCubs(String accountId, String emailaddress, String password, String level, String pack,
Integer enabled, Date archived, String group, String acaId, String cdId, String surname, String firstname) {
this.accountId = accountId;
this.emailaddress = emailaddress;
this.password = password;
this.level = level;
this.pack = pack;
this.enabled = enabled;
this.archived = archived;
this.group = group;
this.acaId = acaId;
this.cdId = cdId;
this.surname = surname;
this.firstname = firstname;
}
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
public String getEmailAddress() {
return emailaddress;
}
public void setEmailAddress(String emailaddress) {
this.emailaddress = emailaddress;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public String getPack() {
return pack;
}
public void setPack(String pack) {
this.pack = pack;
}
public Integer getEnabled() {
return enabled;
}
public void setEnabled(Integer enabled) {
this.enabled = enabled;
}
public Date getArchived() {
return archived;
}
public void setArchived(Date archived) {
this.archived = archived;
}
public String getGroup() {
return group;
}
public void setGroup(String group) {
this.group = group;
}
public String getAcaId() {
return acaId;
}
public void setAcaId(String acaId) {
this.acaId = acaId;
}
public String getCdId() {
return cdId;
}
public void setCdId(String cdId) {
this.cdId = cdId;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getFirstName() {
return firstname;
}
public void setFirstName(String firstname) {
this.firstname = firstname;
}
}发布于 2014-11-12 02:37:48
@IgorKlimer,ChrisHinshaw,谢谢你的帮助。
经过一段时间的尝试和错误之后,我终于把这个做好了。以防万一你想知道(这将在将来帮助你)我:
致以敬意,
格林
发布于 2017-11-17 03:02:35
尽管我还没有弄清楚实际的修复(因为无法在测试环境中删除ROOT.war,所以无法尝试您的修复),但我找到了一些可能对其他人有用的解决方法。
上述问题的主要问题是:
没有找到序列化策略文件'/org.AwardTracker.AwardTracker/C7227FD579DD02DA4BB5B3EBAD09AE79.gwt.rpc‘;您忘记在此部署中包含它了吗?
通常情况下,这是因为部署的WAR文件包含应用程序文件夹,其中有一个rpc文件。然而,由于tomcat缓存或其他方面的一些问题,它仍然在寻找以前部署中使用的旧rpc文件。
因此,工作是,采取以前的文件备份,并复制到应用文件夹再次。

https://stackoverflow.com/questions/26745831
复制相似问题