2013-07-30 35 views
2

我试图在Windows Server 2008上执行卷曲通过命令行下面的命令R2在Tomcat 7卷曲的要求是不正确syntatically

curl -X POST -d "<userList xmlns="urn:user"><user role="ROLE_OPERATOR" loginName="test_login1"></user></userList>" -H "Content-Type: application/xml" --basic --user username:password http://localhost:8080/meolutws/UserList/ 

运行Apache新泽西州的REST当我发出命令,我获取带有消息的HTTP 400:“客户端发送的请求在合成上不正确”。

上的Web服务的方法签名看起来是这样的:

@POST 
@CONSUMES({"application/xml"}) 
public Response createUsers(UserList users){ 
} 

UserList的类定义如下:

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "UserList", namespace = "urn:user", propOrder = { 
    "users" 
}) 
@XmlRootElement(name = "userList", namespace = "urn:user") 
public class UserList 
    implements Serializable 
{ 

    @XmlElement(name = "user") 
    protected List<User> users; 

    public List<User> getUsers() { 
     if (users == null) { 
      users = new ArrayList<User>(); 
     } 
     return this.users; 
    } 
} 

和用户定义如下:

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "User", namespace = "urn:user") 
@XmlRootElement(name = "user", namespace = "urn:user") 
public class User 
    implements Serializable 
{ 

    @XmlAttribute(name = "loginName", required = true) 
    protected String loginName; 

    @XmlAttribute(name = "role", required = true) 
    protected String role; 


    public String getLoginName() { 
     return loginName; 
    } 

    public void setLoginName(String value) { 
     this.loginName = value; 
    }  

    public String getRole() { 
     return role; 
    } 

    public void setRole(String value) { 
     this.role = value; 
    } 
} 

我错过了什么?

回答

0

引号的用法看起来不正确。你这样做:

curl -X POST \ 
    -d "<userList xmlns="urn:user"><user role="ROLE_OPERATOR" loginName="test_login1"></user></userList>" \ 
    -H "Content-Type: application/xml" \ 
    --basic --user meo:meo \ 
    http://localhost:8080/meolutws/UserList/ 

你的身体是:

"<userList xmlns="urn:user"><user role="ROLE_OPERATOR" loginName="test_login1"></user></userList>" 

你不要逃避报价"。如果您使用',会发生错误吗?

'<userList xmlns="urn:user"><user role="ROLE_OPERATOR" loginName="test_login1"></user></userList>' 
+0

如果我在身体周围做单引号,我会得到“<在这个时候是意外的”。 –

+0

我刚刚结束了使用命令“curl -X POST -d @ userList.xml -H”Content-Type:application/xml“--basic --user meo:meo http:// localhost:8080/meolutws/UserList“,其中userList.xml的内容与上面相同。 –