Tomcat错误:java.io.IOException:服务器为URL返回HTTP响应代码:405:
使用Tomcat。我想向服务器发送一个字符串,让服务器处理该字符串,然后将其发回。在写入输出流后,每当我试图在客户端上打开InputStream时,应用程序就会崩溃 服务器:Tomcat错误:java.io.IOException:服务器为URL返回HTTP响应代码:405:,java,tomcat,servlets,http-status-code-405,Java,Tomcat,Servlets,Http Status Code 405,使用Tomcat。我想向服务器发送一个字符串,让服务器处理该字符串,然后将其发回。在写入输出流后,每当我试图在客户端上打开InputStream时,应用程序就会崩溃 服务器: public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ try{ ServletInputStream is =
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException{
try{
ServletInputStream is = request.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
String s = (String)ois.readObject();
is.close();
ois.close();
ServletOutputStream os = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject("return: "+s);
oos.flush();
os.close();
oos.close();
}
catch(Exception e){
}
}
客户:
URLConnection c = new URL("*****************").openConnection();
c.setDoInput(true);
c.setDoOutput(true);
c.connect();
OutputStream os = c.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject("This is the send");
oos.flush();
oos.close();
InputStream is = c.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
System.out.println("ret: "+ois.readObject());
ois.close();
is.close();
os.close();
它返回以下错误:
java.io.IOException: Server returned HTTP response code: 405 for URL:
http://mywebpage.com
是什么导致了这个错误,我做错了什么?您使用的是HTTP servlet;Tomcat作为Web服务器运行。您必须从客户端讲HTTP,而不是序列化Java对象。如果希望使用Java序列化,则需要使用套接字。如果您想使用servlet,您需要使用某种形式的将信息放入HTTP;JSON(与Jackson一起)是一个不错的选择。但是当我发送一个序列化对象时它会工作,当我尝试接收一个对象并将其发送回同一个块时它就会崩溃。虽然这可能不是RPC实现的模型,但没有理由不能交易序列化Java对象。可能是重复的