【发布时间】:2014-03-10 06:34:01
【问题描述】:
我使用 Netbeans 7.4 通过创建 jApplet 文件来构建 Web 应用程序,该文件通过 Serializable 对象与 servlet 进行通信。 Servlet 文件将与 DB 通信并将结果发送到 applet,而且 applet 必须使用 Serializable 对象从 servlet 发送和接收数据。我实际上在源文件夹目录下创建了 servlet 和 JApplet 文件。错误是我无法在JApplet 和 servlet 之间获得任何通信,并且一直给我“协议不支持输出”。这是我连接到 servlet 的 Applet 代码:
myObject = new ExpertDataObject();
((ExpertDataObject) myObject).setSession("EnterUser");
((ExpertDataObject) myObject).setUser(userText.getText());
((ExpertDataObject) myObject).setPassword(passText.getText());
URL currentPage = getCodeBase();
System.out.println(currentPage);
String urlSuffix = "Server";
URL urlServlet = new URL(getCodeBase(), "Server");
System.out.println(urlServlet);
URLConnection con = urlServlet.openConnection();
con.setUseCaches(false);
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestProperty("Content-Type", "application/x-java-serialized-object");
myOutputStream = new ObjectOutputStream(con.getOutputStream());
myInputStream = new ObjectInputStream(con.getInputStream());
myOutputStream.writeObject(myObject);
myObject = (DataObject) myInputStream.readObject();
if (myObject.getMessage().equals("success")) {
dateFormat = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
....
谁能帮我展示在Netbeans 中创建jApplet 与servlet +mySQL 作为Web 应用程序通信的步骤。
提前致谢
阿瓦
这是我在服务器日志中找到的 2014 年 2 月 12 日上午 11:53:23 org.apache.catalina.core.StandardWrapperValve 调用 严重:servlet [Server] 的 Servlet.service() 在路径 [/ExpertToolAppletServlet2] 的上下文中抛出异常 java.io.EOFException 在 java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2325) 在 java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2794) 在 java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:801) 在 java.io.ObjectInputStream.(ObjectInputStream.java:299) 在 Server.processRequest(Server.java:73) 在 Server.doGet(Server.java:177) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
这是我在 processRequest 下的 servlet 代码
String contentType = "application/x-java-serialized-object";
response.setContentType(contentType);
InputStream inputStream = request.getInputStream();
ObjectInputStream in = new ObjectInputStream(inputStream);
myObject = (DataObject) in.readObject();
String process= ((ExpertDataObject) myObject).getSession();
【问题讨论】:
-
System.out.println(urlServlet);的输出是什么? -
嗨,peeskillet,感谢您的回复,它是文件:/Users/arwawali/Documents/NetBeansProjects/ExpertToolAppletServlet/build/web/WEB-INF/Server,Server 是我的 servlet 类名,我查看了到路径,我没有在那里找到类,除了使用getCodeBase()之外,我们如何在服务器上获取servlet类路径?
-
file:/协议不允许写入。在此处进一步阅读:stackoverflow.com/questions/4975743/… -
感谢 PeterMmm 的回复,我已将 urlServlet 更改为 URL urlServlet = new URL("localhost:8080/ExpertToolAppletServlet2/Server"); 现在我收到此错误:服务器返回 HTTP 响应代码:500 for URL:localhost:8080/ExpertToolAppletServlet2
-
500 - Internal Server Error查看服务器日志查找原因。
标签: java servlets web-applications netbeans japplet