2017-02-13 21 views
12

Tôi hiện đang di chuyển ứng dụng GWT từ máy chủ JBoss 5.1 JBoss JBoss 7.0.
Tôi đã đóng gói gwt-servlet.jar trong cuộc chiến được triển khai tới máy chủ
Tôi nhận được lỗi dưới đây.
JBoss 7.0 - GWT - Ngoại lệ khi gửi cuộc gọi RPC đến

05:11:49,068 ERROR [io.undertow.servlet] (default task-5) Exception while dispatching incoming RPC call: com.google.gwt.user.client.rpc.SerializationException: Type 'java.io.FileNotFoundException' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security 
purposes, this type will not be serialized.: instance = java.io.FileNotFoundException 
     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.encodeResponseForFailure(RPC.java:393) 
     at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:579) 
     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:707) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
     at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 
     at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
     at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
     at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
     at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
     at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
     at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
     at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
     at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
     at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
     at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) 
     at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) 
     at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) 
     at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) 
     at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
     at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
     at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
     at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
     at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:285) 
     at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:264) 
     at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) 
     at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:175) 
     at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) 
     at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:792) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 

Tại sao tôi nhận được FileNotFoundException tại đây. Hãy giúp giải quyết vấn đề trên.

+0

Cùng một cuộc chiến khi được triển khai cho Jboss 5 hoạt động tốt. Nguyên nhân của lỗi trong Jboss 7 là gì? GWT RPC có được hỗ trợ trên Jboss 7 không? – Karthik

Trả lời

3

xây dựng trên El Hoss's answer:

Một nơi nào đó trong mã khách hàng GWT của bạn, bạn đang cố gắng truy cập vào một tập tin.

Trong môi trường JBoss 5 của bạn, tệp này đã có sẵn. Bởi vì các tập tin đã có sẵn, một FileNotFoundException chưa bao giờ được tạo ra, vì vậy GWT không bao giờ cố gắng tải hoặc tuần tự hóa lớp đó và do đó nó không bao giờ thất bại (nó chỉ làm như vậy cho các lớp có thể truy cập từ điểm vào).

Hiện tại, trong môi trường JBoss 7 của bạn, tệp này không khả dụng vì một số lý do. Vì tệp không có sẵn, một FileNotFoundException đang được tạo trên mã máy khách GWT, nhưng GWT không biết về lớp đó (nó không được bao gồm trong thư viện mô phỏng Java của GWT), vì vậy nó không thành công.

Bạn có thể giải quyết vấn đề bằng cách tìm tệp bị thiếu và làm cho tệp khả dụng trở lại.

Trên hết, nó sẽ tốt hơn nếu bạn đã tái cấu trúc mã khách hàng của mình để nó không ném ngoại lệ không được bao gồm trong thư viện mô phỏng.

+0

Cảm ơn @walen. Tôi đã giải quyết vấn đề bằng cách đặt tệp thuộc tính vào thư mục modules của máy chủ JBoss 7. Nhưng tôi muốn biết nơi nào chúng ta cần phải đặt các tập tin thuộc tính ứng dụng cụ thể và cách chính xác/đề nghị tham chiếu các tập tin thuộc tính trong Jboss 7 là gì? – Karthik

+0

Xin chào @ Karthik, rất vui vì tôi có thể giúp. Tôi không có kinh nghiệm với máy chủ JBoss, vì vậy tôi không thể giúp bạn với câu hỏi khác của bạn, xin lỗi. – walen

3
java.io.FileNotFoundException 

không phải là một phần của thư viện thi đua và không được sử dụng ở phía khách hàng!

Hãy xem ở đây: GWT Java emulation library

+0

Nhưng cùng một mã đã được làm việc trong JBOSS 5. Làm thế nào tôi nhận được lỗi này trong JBoss 7. Có phải để làm điều gì đó với các lọ GWT? Tôi đã chỉ bao gồm gwt-servlet.jar trong chiến tranh được triển khai. Tôi đã bỏ lỡ bất kỳ lọ? – Karthik

Các vấn đề liên quan