Amazon AWS Java-列表订单引发异常

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

我试图从AmazonMWS获取订单,我只是简单地复制客户机库示例中的
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
设置为