Difficulties faced

Download Report

Transcript Difficulties faced

03-60-569 Project
Global Book retailer
Titas Mutsuddy
Quazi Rahman
1
Outline





Introduction.
Service integration.
Screen shots of project.
Difficulties faced.
Conclusion.
2
Introduction
Project Description:
Integration of Amazon web service, eBay
web service to find out cheap books and
convert price to other currencies.
3
Web services



Amazon Web Service.
eBay Web service.
Currency Converter (XMathods).
4
Tools used



Axis 1.4 (switched from Axis2).

WSDL2Java

JAX-RPC
Tomcat 5.5
J2sdk1.5

Jsp

Servlet

Java Bean
5
Class Diagram
6
Screen Shots
7
Screen Shots
8
Screen Shots
9
Screen Shots
10
Screen Shots
11
Screen Shots
12
Screen Shots
13
Screen Shots
14
Screen shots
15
Screen Shots
16
Screen Shots
17
Difficulties faced
Installation of Axis(2.0/1.4).



Class path setup.
Set up jar files in to lib.
Amazon web service call.



Set up keys for service call.
Soap message call.
18
Difficulties faced
eBay
web service call:
Soap
API .
eBay Java SDK (XML based RPC).

System development:
SandBox
development environment.
Production development environment.
19
Difficulties faced
Difficulties with eBay:-





eBay active auction is so volatile that most of the time auction
ended before debugging of codes.
eBay API manual is not friendly for new developers.
eBay uses their own “ItemID” for each item in active auction.
I Failed Item Specific search in eBay. Succeeded on category
search.



Parsed whole category response xml to pick up item by “Title”.
Most of the time Amazon and eBay book title are not same.
Tried to find out possible pattern to split the titles to extract the
name.
20
Difficulties faced
eBay web service:
Authentication failure:
<?xml version="1.0" encoding="UTF-8"?>
<eBay>
<EBayTime>2007-03-10 15:46:37</EBayTime><Errors>
<Error>
<Code>16112</Code>
<SeverityCode>1</SeverityCode>
<Severity>SeriousError</Severity>
<Line>0</Line><Column>0</Column>
<ErrorClass>RequestError</ErrorClass>
<ShortMessage><![CDATA[Invalid authentication method.]]></ShortMessage>
<LongMessage><![CDATA[The authentication method you are using is invalid. Please
use the eBay Authentication & Authorization method.]]></LongMessage>
</Error>
</Errors>
</eBay>
21
Difficulties faced

eBay web service
“The velocity (rate of change) of eBay is notoriously fast. As anyone
who has used eBay knows, things constantly change, and there is a
fundamental release every 2 weeks. There are supporters and nonsupporters of this, but it's something we all have to live with at this
time, both eBay users and eBay employees…..”
Best Regards,
Amish Patel
eBay Developer Support
22
Difficulties faced

GetItemRequest fails
<?xml version="1.0" encoding="utf-8"?>
<GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<DetailLevel>ItemReturnAttributes</DetailLevel>
<RequesterCredentials>
<eBayAuthToken>MY TOKEN </eBayAuthToken>
</RequesterCredentials>
<ItemID>517203014</ItemID>
</GetItemRequest>
23
Difficulties faced
<?xml version="1.0" encoding="UTF-8"?>
<GetItemResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2007-03-12T1 7:17:47.171Z</Timestamp>
<Ack>Failure</Ack>
<Errors>
<ShortMessage>Item not found.</ShortMessage>
<LongMessage>Item &quot;517203014&quot; is invalid, not activated,or no longer in our
database, or an Live Auction item.</LongMessage>
<ErrorCode>17</ErrorCode>
<SeverityCode>Error</SeverityCode>
<ErrorParameters ParamID="0">
<Value>517203014</Value>
</ErrorParameters>
<ErrorClassification>RequestError</ErrorClassification>
</Errors>
<Version>503</Version><Build>e503_core_Bundled_4329350_R1</Build>
</GetItemResponse>
24
Difficulties faced
[email protected]
Posts: 938
Member Since: 10/20/05
Re: GetItemRequest fails
Posted: Mar 14, 2007 4:40 PM Reply
Hi titasmutsuddy,
You need to specify an eBay ItemID but ISBN # in your GetItem API
request. You can get the item number in either your item's View Item
or the seller's My eBay Selling page.
Best Regards,
Zhuowei Yang
eBay Developer Support
25
Difficulties faced
<?xml version="1.0" encoding="UTF-8"?>
<GetItemResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2007-03-14T0 3:22:17.302Z</Timestamp>
<Ack>Failure</Ack>
<Errors>
<ShortMessage>Item not found.</ShortMessage>
<LongMessage>Item &quot;130094932808&quot; is invalid, not activated, or
no longer in our database, or an Live Auction item.</LongMessage>
<ErrorCode>17</ErrorCode>
<SeverityCode>Error</SeverityCode>
<ErrorParameters ParamID="0">
<Value>130094932808</Value>
</ErrorParameters>
<ErrorClassification>RequestError</ErrorClassification>
</Errors>
<Version>503</Version>
<Build>e503_core_Bundled_4329350_R1</Build>
</GetItemResponse>
26
Difficulties faced
GetSearchResultRequest:<?xml version='1.0' encoding='utf-8'?>\r\n"+
<GetSearchResultsRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">
<ExternalProductID>
<Value>0876295340</Value>
<Type>ISBN</Type>
</ExternalProductID>
<Pagination>
<EntriesPerPage>2</EntriesPerPage>
<PageNumber>1</PageNumber>
</Pagination>
<RequesterCredentials>
<eBayAuthToken>token</eBayAuthToken>
</RequesterCredentials>
</GetSearchResultsRequest>
27
Difficulties faced
GetSearchResultResponse:<?xml version="1.0" encoding="UTF-8"?>
<GetSearchResultsResponse
xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2007-03-14T19:13:08.706Z</Timestamp>
<Ack>Success</Ack>
<Version>503</Version>
<Build>e503_core_Bundled_4329350_R1</Build>
<ItemsPerPage>100</ItemsPerPage>
<PageNumber>1</PageNumber>
<HasMoreItems>false</HasMoreItems>
<PaginationResult>
<TotalNumberOfPages>1</TotalNumberOfPages>
<TotalNumberOfEntries>0</TotalNumberOfEntries>
</PaginationResult>
<CategoryArray/>
</GetSearchResultsResponse>
28
Difficulties faced
Error:- Content not allowed in prolog
[Fatal Error] request.xml:1:41: Content is not allowed in prolog.
Error Sending Request: org.xml.sax.SAXParseException: Content is not allowed in
prolog.
org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:172)
at GetSearchResults.SendRequest(GetSearchResults.java:220)
at GetSearchResults.main(GetSearchResults.java:91)
29
Difficulties faced
30
Difficulties faced
titasmutsuddy
Posts: 4
Member Since: 3/13/07
PKIX path building failed
Posted: Mar 14, 2007 9:38 PM
Hi,
Reply
I am getting a strange error. I didn't get it 4-hours ago. It is like the following:SendRequest IO Error:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExce
ption: unable to find valid certification path to requested target at
com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:150)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1
518)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:174)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:168)
and so on-----Note that I am using the jre1.5.0_11 and checked for latest version and there is none.
I will be pleased if you give any suggestions.
Regards,
Titas Mutsuddy
31
Difficulties faced
Response:-
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException:PKIX path validation failed:
java.security.cert.CertPathValidatorException: timestamp check failed
I think Sun changed the default TrustManagerFactory from SunX509 to
SunPKIX sometime during the 1.5.0 update cycle. grep ManagerFactory
$JAVA_HOME/jre/lib/security/java.security You should be able to override
these with system properties.
32
Difficulties faced
Default:ssl.KeyManagerFactory.algorithm=SunX509
ssl.TrustManagerFactory.algorithm=PKIX
OverWritten in the following properties file:D:\Sun\AppServer\jdk\jre\lib\security\java.security(properties file):ssl.KeyManagerFactory.algorithm=PKIX
ssl.TrustManagerFactory.algorithm=PKIX
33
Difficulties faced
caradtester
Posts: 1
Member Since: 3/10/06
Re: PKIX path building failed
Posted: Mar 14, 2007 11:48 PM Reply
Your JDK is probably missing one of the CA-certs in the path for https://api.sandbox.ebay.com
It seems sandbox may have updated the SSL certificate within the last 24 hours. Hopefully there
will be an official update soon.
Meanwhile.... you might try this (assuming windows platform):
1. In IE, connect to https://api.sandbox.ebay.com
2. Go to Tools > Internet Options > Content > Certificates > Intermediate Certification Authorities [or
"Trusted Root Certification Authorities"]
3. Choose "VeriSign Class 3 Secure Server CA" (I assume this is the certificate that is missing... you can
confirm by comparing thumbprints to what is in your keystore)
4. Click "Export...", then "Next>"
5. Select "DER encoded binary X.509 (.CER)"
6. Name the file c:\temp\verisignsecureserver.cer
7. Select "Finish"
8. \j2sdk1.4.2_08\bin\keytool -keystore \j2sdk1.4.2_08\jre\lib\security\cacerts -import -alias
verisignsecureserver -file c:\temp\verisignsecureserver.cer -trustcacerts
9. del c:\temp\verisignsecureserver.cer
Note that you must have a full JDK installed (not just the JRE) to have access. The default password for
the JDK keystore is well-known: changeit
Please post feedback if this worked for you or not.
34
Difficulties faced
GetSearchResultRequest (Category search succeeded):-
<?xml version='1.0' encoding='utf-8'?>
< GetSearchResultRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>token </eBayAuthToken>
</RequesterCredentials>
<ErrorLevel>1</ErrorLevel>
<Query>books</Query>
<MaxResults>2</MaxResults>
<SiteId>0</SiteId>
</GetSearchResultRequest>
35
Conclusion




Rate of change of eBay is notoriously fast.
Failed “Item specific” search in eBay web service.
eBay XML based Java API is difficult to handle.
eBay introduced SOAP based API in mid-2004 and still eBay platform is
undergoing significant transition to SOAP.
36
Future extension



Item wise search for eBay.
Integrate other available book retailers web service.
Try to create the Shopping Cart (Most difficult part of the project).
37
Questions ?
38