専門家にとっては簡単な問題かもしれませんが、初心者の私にとっては解決すべき重要な問題であるため、これを投稿して申し訳ありません。という名前のテーブルデータソースWSO2 DSS serviceがある場所を作成しましたMYSQLusers(userid(auto_increment),first_name,last_name,password).
GET、POST、PUT、DELETE の特定のクエリと、これらの要求に対応するためのリソースを作成しました。cURL GET と DELETE を使用してサービスのテストを開始したところ、サービスは機能しており、データを取得して削除することができました。ただし、データを挿入 (POST) および更新 (PUT) しようとすると、以下に示す複数のエラーが発生します。
curl: (6) Could not resolve host: first_name curl: (6) Could not
resolve host: last_name curl: (6) Could not resolve host: password
HTTP/1.1 500 Internal Server Error Access-Control-Allow-Headers:
authorization,Access-Control-Allow-Origin,Content-Type Vary:
Accept-Encoding Content-Type: text/html;charset=utf-8 Date: Fri, 08
Aug 2014 05:05:43 GMT Server: WSO2-PassThrough-HTTP Transfer-Encoding:
chunked
<html><head><title>Apache Tomcat/7.0.34 - Error
report</title><style><!--H1
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
H2
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;}
H3
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;}
BODY
{font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;}
B
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P
{font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A
{color : black;}A.name {color : black;}HR {color :
#525D76;}--></style> </head><body><h1>HTTP Status 500 - String index out of range: 1</h1><HR size="1" noshade="noshade"><p><b>type</b>
Exception report</p><p><b>message</b> <u>String index out of range:
-1</u></p><p><b>description</b> <u>The server encountered an internal error that prevented t from fulfilling this
request.</u></p><p><b>exception</b>
<pre>java.lang.StringIndexOutOfBoundsException: String index out of
range: -1
java.lang.String.substring(String.java:1911)
rg.apache.axis2.builder.XFormURLEncodedBuilder.extractParametersFromRequest(XFormURLEncodedBilder.java:174)
rg.apache.axis2.builder.XFormURLEncodedBuilder.processDocument(XFormURLEncodedBuilder.java:12)
rg.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:188)
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:146)
org.apache.axis2.transport.http.util.RESTUtil.processXMLRequest(RESTUtil.java:65)
org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processXMLRequest(AxisServlet.java:826)
org.apache.axis2.transport.http.AxisServlet.doPut(AxisServlet.java:317)
javax.servlet.http.HttpServlet.service(HttpServlet.java:758)
javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
使用した cURL コマンドは次のとおりです。
POST - curl -i -H "Authorization: Bearer f56ce778dee04274eba0eab3e9d7b324" -H "Accept: application/json" -X POST -d {"first_name":"chris","last_name":"paul","password":"cp3"} http://ip:port/SampleDSS/user/
PUT - curl -i -H "Authorization: Bearer f56ce778dee04274eba0eab3e9d7b324" -H "Accept: application/json" -X PUT -d {"userid":11,"first_name":"chris","last_name":"paul","password":"cp3"} http://ip:port/SampleDSS/user/
私が使用しているcURLコマンドまたはフォーマットデータに問題があるかどうか指摘していただけますか?JSON
どんな実質的な助けも歓迎されます。
どうもありがとうございました!