Tomcat错误:java.io.IOException:服务器返回HTTP响应代码:405为URL:

时间:2013-08-10 14:12:36

标签: java tomcat servlets http-status-code-405

使用Tomcat。我想将一个String发送到服务器,让服务器操纵String然后再发回。在我写完输出流后尝试在客户端上打开InputStream时,应用程序崩溃。

服务器:

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

导致此错误的是什么,我做错了什么?

1 个答案:

答案 0 :(得分:0)

您正在使用HTTP servlet; Tomcat作为Web服务器运行。您必须从客户端说HTTP,而不是序列化的Java对象。如果您想使用Java序列化,则需要使用套接字。如果要使用servlet,则需要使用某种形式将信息放入HTTP中; JSON(与杰克逊)是一个不错的选择。