28

いくつかの調査を行った後、この質問をしています。この種のエラーに対して与えられた解決策に従いましたが、うまくいきませんでした。以下のコードのどこが間違っているかについての提案。REST API を作成していますが、URL を要求すると 405 エラーが発生します。以下は、要求している URI です。

    http://localhost:8080/Project/services/start/version

以下はコードスニペットです。

@Path("/start")

public class StartService {
@GET
@Path("/version")
@Produces({"text/plain","application/xml","application/json"})
public String getVersion() {
    String ver="";

    try{


          Runtime rt = Runtime.getRuntime();
          Process pr = rt.exec("C:\\server\\dgr -v" );

          BufferedReader stdInput = new BufferedReader(new InputStreamReader
(pr.getInputStream()));
          BufferedReader input = new BufferedReader(stdInput);
         // String ver ="";
          StringBuffer verOutput = new StringBuffer();
                while((ver =  input.readLine()) != null){
                    verOutput.append(ver + "\n");
                    System.out.println(ver);
                }


        }catch (Throwable t)  
          {  
            t.printStackTrace();  
          }  


        finally {  

        }
    return ver;  }

}

web.xml:

<web-app 
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">

<servlet>
<display-name>eLicensingWeb</display-name>      
    <servlet-name>JAX-RS REST</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
     <init-param>
         <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.cem.plc.service</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup>
</servlet>




<servlet-mapping>
    <servlet-name>JAX-RS REST</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>


<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>


</web-app>
4

5 に答える 5

6

GET 操作の PUT 呼び出しを行っている可能性があります。一度確認してください

于 2020-08-27T17:59:08.843 に答える
0

追加

@Produces({"image/jpeg,image/png"})

@POST
@Path("/pdf")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces({"image/jpeg,image/png"})
//@Produces("text/plain")
public Response uploadPdfFile(@FormDataParam("file") InputStream fileInputStream,@FormDataParam("file") FormDataContentDisposition fileMetaData) throws Exception {
    ...
}
于 2016-09-01T15:48:11.273 に答える
0

私もこの問題を抱えていましたが、サーバーで CORS サポートを有効にすることで解決できました。私の場合、それは Azure サーバーであり、簡単でした: Azure で CORS を有効にします

そのため、サーバーがどのように機能するかを確認し、CORS を有効にします。ブラウザプラグインやプロキシさえ必要ありませんでした:)

于 2017-01-21T20:29:41.580 に答える