Amazon AWS Java-列表订单引发异常
我试图从AmazonMWS获取订单,我只是简单地复制客户机库示例中的Amazon AWS Java-列表订单引发异常,java,amazon,amazon-mws,Java,Amazon,Amazon Mws,我试图从AmazonMWS获取订单,我只是简单地复制客户机库示例中的ListOrdersSample.java。下面是代码,以及它引发的StringIndexOutOfBounds异常。我不知道为什么会这样。亚马逊的文档非常稀少,在线搜索的结果也很少 有人能帮忙吗?提前谢谢你 public class GetOrderList { private static final String mAccessKeyID = "accessKeyID"; private static f
ListOrdersSample.java
。下面是代码,以及它引发的StringIndexOutOfBounds
异常。我不知道为什么会这样。亚马逊的文档非常稀少,在线搜索的结果也很少
有人能帮忙吗?提前谢谢你
public class GetOrderList
{
private static final String mAccessKeyID = "accessKeyID";
private static final String mSecretAccessKey = "secretAccessKey";
private static final String mMerchantID = "merchantID";
private static final String mMarketplaceID = "marketplaceID";
/**
* Call the service, log response and exceptions.
*/
public static ListOrdersResponse invokeListOrders(
MarketplaceWebServiceOrders client,
ListOrdersRequest request)
{
try
{
// Call the service.
// Line 44
ListOrdersResponse response = client.listOrders(request);
ResponseHeaderMetadata rhmd = response.getResponseHeaderMetadata();
// We recommend logging every the request id and timestamp of every call.
System.out.println("Response:");
System.out.println("RequestId: "+rhmd.getRequestId());
System.out.println("Timestamp: "+rhmd.getTimestamp());
String responseXml = response.toXML();
System.out.println(responseXml);
return response;
}
catch (MarketplaceWebServiceOrdersException ex)
{
// Exception properties are important for diagnostics.
System.out.println("Service Exception:");
ResponseHeaderMetadata rhmd = ex.getResponseHeaderMetadata();
if(rhmd != null)
{
System.out.println("RequestId: "+rhmd.getRequestId());
System.out.println("Timestamp: "+rhmd.getTimestamp());
}
System.out.println("Message: "+ex.getMessage());
System.out.println("StatusCode: "+ex.getStatusCode());
System.out.println("ErrorCode: "+ex.getErrorCode());
System.out.println("ErrorType: "+ex.getErrorType());
throw ex;
}
}
/**
* Command line entry point.
*/
public static void main(String[] args)
{
// Get a client connection.
// Make sure you've set the variables in MarketplaceWebServiceOrdersSampleConfig.
MarketplaceWebServiceOrdersClient client = MarketplaceWebServiceOrdersSampleConfig.getClient();
// Create a request.
ListOrdersRequest request = new ListOrdersRequest();
request.setSellerId(mMerchantID);
// Not sure if this is correct
request.setMWSAuthToken(mAccessKeyID);
XMLGregorianCalendar createdAfter = MwsUtl.getDTF().newXMLGregorianCalendar();
request.setCreatedAfter(createdAfter);
XMLGregorianCalendar createdBefore = MwsUtl.getDTF().newXMLGregorianCalendar();
request.setCreatedBefore(createdBefore);
XMLGregorianCalendar lastUpdatedAfter = MwsUtl.getDTF().newXMLGregorianCalendar();
request.setLastUpdatedAfter(lastUpdatedAfter);
XMLGregorianCalendar lastUpdatedBefore = MwsUtl.getDTF().newXMLGregorianCalendar();
request.setLastUpdatedBefore(lastUpdatedBefore);
List<String> orderStatus = new ArrayList<String>();
request.setOrderStatus(orderStatus);
List<String> marketplaceId = new ArrayList<String>();
request.setMarketplaceId(marketplaceId);
List<String> fulfillmentChannel = new ArrayList<String>();
request.setFulfillmentChannel(fulfillmentChannel);
List<String> paymentMethod = new ArrayList<String>();
request.setPaymentMethod(paymentMethod);
String buyerEmail = "example";
request.setBuyerEmail(buyerEmail);
String sellerOrderId = "example";
request.setSellerOrderId(sellerOrderId);
Integer maxResultsPerPage = 100;
request.setMaxResultsPerPage(maxResultsPerPage);
List<String> tfmShipmentStatus = new ArrayList<String>();
request.setTFMShipmentStatus(tfmShipmentStatus);
// Make the call.
// Line 129
invokeListOrders(client, request);
}
}
Service Exception:
Message: null
StatusCode: 0
ErrorCode: null
Exception in thread "main" com.amazonservices.mws.orders._2013_09_01.MarketplaceWebServiceOrdersException
ErrorType: null
at com.amazonservices.mws.orders._2013_09_01.MarketplaceWebServiceOrdersClient$RequestType.wrapException(MarketplaceWebServiceOrdersClient.java:143)
at com.amazonservices.mws.client.MwsConnection.call(MwsConnection.java:429)
at com.amazonservices.mws.orders._2013_09_01.MarketplaceWebServiceOrdersClient.listOrders(MarketplaceWebServiceOrdersClient.java:87)
at test.GetOrderList.invokeListOrders(GetOrderList.java:44)
at test.GetOrderList.main(GetOrderList.java:129)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1955)
at com.amazonservices.mws.client.MwsConnection$ServiceEndpoint.<init>(MwsConnection.java:102)
at com.amazonservices.mws.client.MwsConnection.getServiceEndpoint(MwsConnection.java:398)
at com.amazonservices.mws.client.MwsConnection.newCall(MwsConnection.java:687)
at com.amazonservices.mws.client.MwsConnection.call(MwsConnection.java:420)
... 3 more
公共类GetOrderList
{
私有静态最终字符串mAccessKeyID=“accessKeyID”;
私有静态最终字符串mSecretAccessKey=“secretAccessKey”;
私有静态最终字符串mMerchantID=“merchantID”;
私有静态最终字符串mMarketplaceID=“marketplaceID”;
/**
*调用服务、记录响应和异常。
*/
公共静态ListOrdersResponse调用存储程序(
MarketplaceWebServiceOrders客户端,
ListOrdersRequest请求)
{
尝试
{
//打电话给服务部。
//第44行
ListOrdersResponse-response=client.listOrders(请求);
ResponseHeaderMetadata rhmd=response.getResponseHeaderMetadata();
//我们建议记录每个请求id和每个调用的时间戳。
System.out.println(“响应:”);
System.out.println(“RequestId:+rhmd.getRequestId());
System.out.println(“时间戳:+rhmd.getTimestamp());
字符串responseXml=response.toXML();
System.out.println(responseXml);
返回响应;
}
捕获(MarketplaceWebServiceOrderException例外)
{
//异常属性对于诊断非常重要。
System.out.println(“服务异常:”);
ResponseHeaderMetadata rhmd=例如getResponseHeaderMetadata();
如果(rhmd!=null)
{
System.out.println(“RequestId:+rhmd.getRequestId());
System.out.println(“时间戳:+rhmd.getTimestamp());
}
System.out.println(“消息:+ex.getMessage());
System.out.println(“状态码:+ex.getStatusCode());
System.out.println(“错误代码:+ex.getErrorCode());
System.out.println(“ErrorType:+ex.getErrorType());
掷骰子;
}
}
/**
*命令行入口点。
*/
公共静态void main(字符串[]args)
{
//获取客户端连接。
//确保已在MarketplaceWebServiceOrdersSampleConfig中设置了变量。
MarketplaceWebServiceOrdersClient=MarketplaceWebServiceOrdersSampleConfig.getClient();
//创建一个请求。
ListOrdersRequest请求=新建ListOrdersRequest();
请求。setSellerId(mMerchantID);
//不确定这是否正确
setMWSAuthToken(mAccessKeyID);
XMLGregorianCalendar createdAfter=MwsUtl.getDTF().newXMLGregorianCalendar();
request.setCreatedAfter(createdAfter);
XMLGregorianCalendar createdBefore=MwsUtl.getDTF().newXMLGregorianCalendar();
setCreatedBefore(createdBefore);
XMLGregorianCalendar LastUpdateAfter=MwsUtl.getDTF().newXMLGregorianCalendar();
request.setLastUpdateAfter(LastUpdateAfter);
XMLGregorianCalendar lastUpdatedBefore=MwsUtl.getDTF().newXMLGregorianCalendar();
request.setLastUpdatedBefore(lastUpdatedBefore);
List orderStatus=new ArrayList();
setOrderStatus(orderStatus);
List-marketplaceId=new-ArrayList();
请求.setMarketplaceId(marketplaceId);
List fulfillmentChannel=new ArrayList();
request.setFulfillmentChannel(fulfillmentChannel);
List paymentMethod=新建ArrayList();
request.setPaymentMethod(paymentMethod);
字符串buyerEmail=“示例”;
request.setBuyerEmail(buyerEmail);
字符串sellerOrderId=“示例”;
请求。setSellerOrderId(sellerOrderId);
整数maxResultsPerPage=100;
request.setMaxResultsPerPage(maxResultsPerPage);
List tfmShipmentStatus=new ArrayList();
setTFMShipmentStatus(tfmShipmentStatus);
//打电话。
//第129行
调用存储程序(客户端、请求);
}
}
服务异常:
消息:空
状态代码:0
错误代码:null
线程“main”com.amazonservices.mws.orders中出现异常。\u 2013\u 09\u 01.MarketplaceWebServiceOrderException
错误类型:null
在com.amazonservices.mws.orders.\u 2013\u 09\u 01.MarketplaceWebServiceOrdersClient$RequestType.wrapException(MarketplaceWebServiceOrdersClient.java:143)
访问com.amazonservices.mws.client.MwsConnection.call(MwsConnection.java:429)
在com.amazonservices.mws.orders.\u 2013\u 09\u 01.MarketplaceWebServiceOrdersClient.listOrders(MarketplaceWebServiceOrdersClient.java:87)
位于test.GetOrderList.invokeListOrders(GetOrderList.java:44)
位于test.GetOrderList.main(GetOrderList.java:129)
原因:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1
位于java.lang.String.substring(String.java:1955)
位于com.amazonservices.mws.client.MwsConnection$ServiceEndpoint。(MwsConnection.java:102)
位于com.amazonservices.mws.client.MwsConnection.getServiceEndpoint(MwsConnection.java:398)
位于com.amazonservices.mws.client.MwsConnection.newCall(MwsConnection.java:687)
访问com.amazonservices.mws.client.MwsConnection.call(MwsConnection.java:420)
... 3个以上
您是否为Java MWS库完成了列表中的第3项?似乎未配置服务端点。我收到此异常,因为我的ServiceURL
设置不正确
要修复此问题,我将ServiceURL
设置为