user2821894 user2821894 - 5 months ago 54
Java Question

HTTP Status 405 - Method Not Allowed Error for Rest API

Am asking this question after doing some research. I did followed the solutions given for this kind of error but did not work for me. Any suggestions as where am going wrong in the below code.I am creating a REST API but when I request the url it is giving me the 405 error.Below is the URI am requesting.

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


Below is the code snippet.

@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>

Answer

@Produces({"text/plain","application/xml","application/json"}) change this to @Produces("text/plain") and try,

Comments