2012-12-06 127 views
0

背景的其他選項:當服務器返回HTTP響應代碼405

我試圖從從applet調用類的數據發送到一個servlet都在同一臺服務器上。

public class SendData { 
    public void send() { 
     URL url = new URL("http://address.edu/folder/package/Servlet.class"); 
     URLConnection conn = url.openConnection(); 
     conn.setUseCaches(false); 
     conn.setDoInput(true); 
     conn.setDoOutput(true); 
     ObjectOutputStream objout = new ObjectOutputStream(conn.getOutputStream()); 
     Object data = new Object(); 
     objout.writeObject(data); 
     objout.flush(); 
     objout.close(); 
}} 

該servlet看起來像:

public class Servlet extends HttpServlet { 
    public void doPost(HttpServletRequest req, HttpServletResponse resp) { 
     ObjectInputStream objin = new ObjectInputStream(req.getInputStream()); 
     Object input = objin.readObject(); 
     objin.close(); 
     resp.setStatus(HttpServletResponse.SC_OK); 
     ...// do other things 
}} 

問題:

傳回的錯誤是java.io.IOException: Server returned HTTP response code: 405 for URL: http://address.edu/folder/Servlet.class。我正在使用我學校的服務器,但我不是100%確定的,但我不認爲服務器允許使用doPost方法。

有沒有辦法解決這個問題?如果我提供允許訪問的用戶名和密碼,我可以通過ftp連接到servlet.class嗎?我是一個完整的初學者,所以任何意見/建議將不勝感激!

編輯:添加的web.xml

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.5" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <servlet> 
    <servlet-name>Servlet</servlet-name> 
    <servlet-class>package.Servlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>Servlet</servlet-name> 
    <url-pattern>/Servlet</url-pattern> 
    </servlet-mapping> 
</web-app> 

回答

0

假設一切都在你的服務器(web.xml文件,URL映射等)上的配置正確,你必須指定使用POST方法在客戶端上。

URLConnection爲http://默認情況下,URL使用GET方法。

如果您確信此請求能夠成爲百達HTTP請求,那麼你就可以轉換爲HttpURLConnection,它允許你設置請求方法:

URL url = new URL("http://address.edu/folder/Servlet.class"); 
    conn = (HttpURLConnection)url.openConnection(); 
    conn.setRequestMethod("POST"); 
    ... 
+0

這將返回相同的錯誤。您提到的配置對允許doPost方法有影響嗎?如果是這樣,我從哪裏開始? – GreenBeans

+0

那就完全不同了。然後,您應該向我們展示您的web.xml(特別是Servlet和ServletMapping部分)以及可能相關的服務器日誌條目。 –

+0

我添加了web.xml,但不知道如何獲取服務器日誌條目。 – GreenBeans

相關問題