curl POST命令输入json,请求Jersey服务,给出HTTP415错误



我试图通过curl command=>发送一个post请求

curl-H‘内容类型:application/json’-X POST
http://8080/JerseyWeb/rest/restservice/remov eDBObjects-d'{"url":":1521:orcl1","dbUser":"soumchat","dbPassword":"soumchat_123","sqlScriptFilePath":"D:\Sissues\28344094-POC-POSITORY清理-CONTENT\dropObjects\dropTablesViewsSequences.sql"}">

输出:

HTTP状态415–不支持的媒体类型类型状态报告

Message Unsupported Media Type

说明源服务器拒绝为请求提供服务,因为有效载荷的格式不受目标资源上此方法的支持

以下分别是我的json类、web.xml和rest webservice:

RestServices.java
--------------
package com.jersey.service;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import com.jersey.service.json.Message;
import com.jersey.service.json.SQLParam;
@Path("/restservice")
public class RestServices {
private static final String DEFAULT_DELIMITER = 
";";
private Connection conn;
private boolean stopOnError;
private boolean autoCommit;
private PrintWriter logWriter = new 
PrintWriter(System.out);
private PrintWriter errorLogWriter = new 
PrintWriter(System.err);
private String delimiter = DEFAULT_DELIMITER;
/*
* @GET
* 
* @Path("/removeDBObjects")
* 
* @Produces(MediaType.TEXT_PLAIN) public Response 
removeDBObjects() {
* 
* return Response.ok("Hello").build(); }
*/
@POST
@Path("/removeDBObjects")
@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.APPLICATION_JSON)
public Response removeDBObjects1(SQLParam 
sqlParams) {
String url = sqlParams.getUrl();
String dbUser = sqlParams.getDbUser();
String dbPassword = sqlParams.getDbPassword();
String       
sqlScriptPath=sqlParams.getSqlScriptFilePath();
try {
DriverManager.setLoginTimeout(300);
conn = getConnectionasDbUser(dbUser, 
dbPassword, url);
Reader reader = new BufferedReader(new 
FileReader(new File(sqlScriptPath)));
if (!(conn == null) && !(reader == null) 
&& reader.ready())
runScript(conn, reader);
return Response.ok("Hello").build();
} catch (SQLException | IOException ex) {
return Response.status
(Status.INTERNAL_SERVER_ERROR).build();
}
}
}
SQLParams.java
--------------
package com.jersey.service.json;
import 
javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class SQLParam {
private String url;
private String dbUser;
private String dbPassword;
private String sqlScriptFilePath;
public SQLParam() {
}
public SQLParam(String url, String dbUser, 
String dbPassword, String sqlScriptFilePath) {
this.url = url;
this.dbUser = dbUser;
this.dbPassword = dbPassword;
this.sqlScriptFilePath = sqlScriptFilePath;
}
public void setUrl(String url) {
this.url = url;
}
public void setDbUser(String dbUser) {
this.dbUser = dbUser;
}
public void setDbPassword(String dbPassword) {
this.dbPassword = dbPassword;
}
public void setSqlScriptFilePath(String 
sqlScriptFilePath) {
this.sqlScriptFilePath = 
sqlScriptFilePath;
}
public String getUrl() {
return url;
}
public String getDbUser() {
return dbUser;
}
public String getDbPassword() {
return dbPassword;
}
public String getSqlScriptFilePath() {
return sqlScriptFilePath;
}
@Override
public String toString() {
return new   
StringBuffer("url:").
append(this.url).append(",dbUser:")
.append(this.dbUser)
.append(",dbPassword:") 
.append(this.getDbPassword())
.append(",sqlScriptFilePath:")
.append(this.sqlScriptFilePath).toString();
}
}
web.xml
-------
<?xml version="1.0" encoding="UTF-8"?>
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema- 
instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com
/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web- 
app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>com.jersey.service</display-name>
<servlet>
<servlet-name>jersey_servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container
.servlet.ServletContainer</servlet-class>
<!-- Register resources and providers under 
com.vogella.jersey.first package. -->
<init-param>
<param- 
name>jersey.config.server.provider
.packages</param-name>
<param-value>com.jersey.service</param- 
value>
</init-param>
<init-param>
<param-  
name>com.sun.jersey.api.json.
POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey_servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
JARs
-----
asm.jar
jersey-client-1.10.jar
jersey-core.jar
jersey-json-1.18.3.jar
jersey-multipart.jar
jersey-server.jar
jersey-servlet.jar
json.jar
What am I missing?
> Blockquote

CURL命令中的内容类型不正确。请使用以下内容作为示例。内容类型:application/xml

最新更新