Please note the following important information about the SDK:
| Contents |
|---|
| Release Information for the eBay SDK for Java |
| Installation Instructions |
| General Information for the eBay SDK for Java |
Important: Changes to the Trading API affect the SDK. For example, in schema version 499, deprecated objects in the schema were deleted, creating backward incompatibility. See the Trading API Release Notes for ongoing updates to the schema (including occasional removals of schema elements). Please also see Versioning Strategy and Deprecated Objects.
A new StubModifier tool is used to handle unrecognized enum values received in a SOAP response. The tool post-processes the stubs generated by Apache Axis WSDL2Java. The tool contains the StubModifier class, located in ...\source\Tools\StubModifier\src\tools\webservices\wsdl\stubutil\StubModifier.java.
The eBay SDK for Java includes the user-authentication improvements released with Trading API version 557. For information about these improvements, see the Release Notes for version 557 of the Trading API and see Authentication and Authorization.
The SDK changes include 3 new wrapper classes (GetSessionIDCall, GetTokenStatusCall, and RevokeTokenCall) and new FetchTokenCall functionality. Please use the new FetchTokenCall functionality in your application. The apiCallsDemo and signinRedirect samples are updated with the new FetchTokenCall functionality. Additionally, the apiCallsDemo is updated to show uses of GetTokenStatusCall and RevokeTokenCall.
The eBay SDK for Java contains updated wrapper classes, updated test cases, and other updates that facilitate your use of recent features of the API.
For information about the latest API features, please see the Trading API Release Notes and the eBay Trading Web Services section of the Developer Documentation Center.
The Attributes Library in the SDK now supports downloading and rendering sitewide characteristic sets. This enables you to include sitewide attributes in listings.
On many sites, you use sitewide attribute sets to fill in an item's Return Policy fields, the Item Condition field, or both. Some categories may support zero, one, or both of these sets (as indicated in each sitewide set's "exclude list").
The changes described here assume you are already familiar with the Attributes Library. (For information about working with the Attributes Library, see The Attributes API.)
In the IAttributesMaster interface and AttributesMaster class, the renderHtmlForCategories() method has been removed. Instead, these new methods have been defined:
In the AttributesMaster class, the renderHtml() method has been updated to support rendering Return Policy fields (using eBay's XSL stylesheet). This method checks whether the data is for a return policy, and adds the pageId attribute to the SelectedAttributes node if it is.
A few helper methods have been added to or modified in IAttributesXmlProvider and AttributesXmlDownloader:
A few helper methods have also been added to ICategoryCSProvider and CategoryCSDownloader:
Note: In a few cases, the Item Condition attribute may appear twice when you render standard and sitewide data for a category. Please inform eBay if this occurs. This occurs when a category is mapped to a standard characteristic set that defines an Item Condition attribute locally, and the category is also mapped to a sitewide Item Condition characteristic set. To avoid unexpected results, the seller should either use the local Item Condition defined in the standard set, or you should make sure the same value is used for both when you list the item.
Here are a few cases that may be helpful when you're testing sitewide attributes in the Sandbox:
For an example of new and existing functionality in the Attributes Library, see the existing samples\attributesDemo sample and the Readme file for that sample.
Unlike past SDK releases, all SDK releases now are delivered as zip files. There is no installer. For more information, see the Installation Instructions.
The eBay SDK for Java contains updated wrapper classes, updated test cases, and other updates that facilitate your use of recent features of the API.
For information about the latest API features, please see the Trading API Release Notes and the eBay Trading Web Services section of the Developer Documentation Center.
The SDK has been upgraded with externalLib\axis-1_1\xalan.jar and externalLib\axis-1_1\serializer.jar, for use by source\core\src\com\ebay\sdk\util\XmlUtil.java and source\core\src\com\ebay\sdk\util\XPathUtil.java.
The Attributes Library now gives you the option to store attribute metadata locally, and only download updates for a site if a newer version exists on the site. Each provider includes one or more get methods for this purpose. In the downloader classes that implement the provider interfaces, these methods check to see what version of the metadata is already stored locally and compare it to the version on the site. If the version on the site is different, or if the metadata isn't stored locally, these get methods download the appropriate metadata from the site and store it in the local file system.
These are the filename conventions (where version is the metadata version, not the request version):
| XSL file | site.version.attrxsl |
| Category-to-CS mappings (all categories) | site.ALL.version.catcs |
| Category-to-CS mappings (one category) | site.categoryID.version.catcs |
| Attributes CS (all sets) | site.ALL.version.attrcs |
| Attributes CS (one or more sets) | site.CSIdHashcode.version.attrcs |
For example, if you retrieve a full attribute metadata XML file from the UK site (without specifying a particular CSId), and the attribute system version is 8005, the filename would be: UK.ALL.8005.attrcs.
If you retrieve attribute metadata for one or more CSIds, the downloader creates a hashcode for the set (the sum of the IDs), and uses that value in the filename.
The downloader saves these files in the location where the application is launched. For example, if you are using Apache Tomcat, this could be the bin folder or the $CATALINA_HOME folder, depending on how you launch the application. If you are using a desktop application, this could be in the folder where the application is located.
Important: You can delete these locally stored files, but if you edit or rename them, your application may fail.
Alternatively, each provider includes download methods to enable you to force a full download of the metadata without checking the version. In the downloader classes, these methods store the metadata in memory only.
For information about working with the Attributes Library, see The Attributes API. For a sample that uses the functionality in the Attributes library, see C:\Program Files\eBay\SDKInstallDir\samples\attributesDemo and the Readme file for that sample.
The eBay SDK for Java contains updated wrapper classes, updated test cases, and other updates that facilitate your use of recent features of the API.
For information about the latest API features, please see the Trading API Release Notes and the eBay Trading Web Services section of the Developer Documentation Center.
The eBay SDK for Java no longer is available in the Community Codebase. Instead, it is available on the eBay SDK for Java download page. The 511 version includes the 511 javadoc.
For information about the latest API features, please see the Trading API Release Notes and the Trading Web Services API Guide at the Java Developer Center. The Trading Web Services API Guide replaces the eBay SDK for Java Guide.
The eBay SDK for Java contains updated wrapper classes, updated test cases, and other updates that facilitate your use of recent features of the API.
Schema version 513 introduced a new XML API call (UploadSiteHostedPictures) for uploading pictures for listings. Availability of this call in the SOAP API is planned for a future date, to be announced. Until this call is available in the SOAP API, no wrapper class will be available for this call in the SDK.
Many deprecated calls and fields were deleted in WSDL version 499. Due to the large number of deletions, SDK Version 511 is not backward compatible.
You can use a helper class (...\SDKInstallDir\source\helper\src\com\ebay\sdk\helper\GetCategoryFeaturesHelper.java) to store the response data of GetCategoryFeaturesCall in memory. The helper class behaves similarly to the GetCategoryFeatures API call. For an example of how to use the GetCategoryFeatures helper class, please see the following sample: ...\SDKInstallDir\source\SanityTest\src\test\ebay\sdk\helper\GetCategoryFeaturesHelperTests.java.
The following samples (formerly under the samples folder) have been removed from the SDK, but are available in previous SDK versions: databaseSample, eBaySales, and eBaySalesDesktop.
If you install the SDK on Linux and try to run the consoleAddItem sample (in the samples folder), use the dos2unix command on the run.sh file before running the sample. The same step is required for the consoleViewItem sample.
Due to a large number of deletions from version 499 of the schema, this SDK version is not backward compatible. Deprecated calls and fields were deleted on schema version 499.
For information about SDK changes, please see the javadoc installed in the C:\Program Files\eBay\SDKInstallDir\docs\LibRef folder. Additional information about schema deletions is in the Deprecated Objects page in the Input/Output Reference. Please also read the eBay Schema Versioning Strategy page.
This SDK point release contains updated wrapper classes and other updates that facilitate your use of new API features. The following features, described in the Trading API Release Notes, are among the API features included in this SDK release:
In the Shipping Discount Profiles feature, changes to WSDL elements were made on API version 505. To use the Shipping Discount Profiles feature, please update your SDK to WSDL version 505 or later.
Formerly, use of the getAllCategories method of the GetCategoriesCall wrapper class would result in a setting of the US category site ID in all cases. The wrapper class has been fixed to enable the correct category site ID to be set.
The database sample (C:\Program Files\eBay\SDKInstallDir\samples\databaseSample) cannot be used with the version 503 point release of the SDK.
The eBay SDK for Java contains updated wrapper classes, updated test cases, and other updates that facilitate your use of recent features of the API.
The GetMyeBayCall wrapper class has been removed from the SDK due to deprecation of the underlying request/response elements in the schema. For more information about deprecated elements, please see the Versioning Strategy and Versioning Summary. Additionally, the GetMyeBay code has been removed from the Sanity Test suite and from the apiCallsDemo sample.
The PictureDetails field replaced the SiteHostedPicture and VendorHostedPicture fields in the API. Therefore, references to SiteHostedPicture and VendorHostedPicture have been removed from the SDK. For information about when the PictureDetails field replaced the SiteHostedPicture and VendorHostedPicture fields, please see the Versioning Summary.
If you choose the Eclipse environment for development with the eBay SDK for Java, you can use Project files provided with the SDK. For more information, please see the following: C:\Program Files\eBay\SDKInstallDir\DevEnvReadme.htm.
The samples in the eBay SDK for Java now include a signinRedirect sample that generates a token for an end user. The new sample is located at C:\Program Files\eBay\SDKInstallDir\samples\signinRedirect. Additionally, four dialog boxes, including dialog boxes for use of GetCartCall and SetCartCall, have been added to the apiCallsDemo sample (C:\Program Files\eBay\SDKInstallDir\samples\apiCallsDemo).
You can use the new ExceptionFilter class to specify several types of logging. The ExceptionFilter class enables you to log exceptions, error codes, or HTTP status codes.
This new logging feature makes logging more useful and reduces the size of your logs. You can choose to log specific exceptions, specific API error codes, and specific HTTP status codes.
For an example of how to use the new ExceptionFilter class, please see the following sample: C:\Program Files\eBay\SDKInstallDir\source\SanityTest\src\com\ebay\sdk\sanitytest\testcases\SOAPError.java.
For more information and more sample code, please see the following Knowledge Base article: Enabling exception-based payload logging using the JAVA SDK.
New enhancements can help you determine the time needed for each phase of a SOAP API call (client-side phases for encoding and decoding, network-transport phases, and server-side phase). The enhancements were made to Axis (C:\Program Files\eBay\SDKInstallDir\externalLib\axis-1_1\axis.jar) and to core SDK source files.
For an example of how to use the enhancements, see the PerfTest sample (C:\Program Files\eBay\SDKInstallDir\source\PerfTest), which, along with the Axis jar file, has been modified in this release. The changes to the PerfTest sample include removal of the HTTPSenderWithMetricsLogging class because metrics logging is now part of the customized Axis jar file delivered with the SDK.
Please note that a customized version of the Axis jar file must be used with the eBay SDK for Java. If you download or otherwise obtain a version of Axis 1.1, then you must follow the instructions in the source\axis_customization\axis_1_1 folder to build Axis 1.1.
AddMemberMessage was removed from the WSDL on version 481. As previously announced, this call has been replaced by AddMemberMessageAAQToPartner, AddMemberMessageRTQ, and AddMemberMessagesAAQToBidder. For information about schema changes, please see the Trading API Release Notes (which contain tables showing the schema changes that occur every two weeks) at the Developer Documentation Center.
The reliability of the Sanity Test suite (under the Source\SanityTest folder) has been improved. You can use the Sanity Test suite for simple testing after you change code in the SDK.
The GetCharitiesCall wrapper class has been fixed to no longer throw an exception based on whether an OverrideRequest property was set.
In previous releases of the eBay SDK for Java, a request error could occur when AddItemCall.newUUID generated a UUID for use by your application. The request error occurred when the UUID included a '-' character generated by AddItemCall.newUUID. In the current release, this request error should not occur because AddItemCall.newUUID was changed to prevent generation of a '-' character.
The StoresFixedPrice tag, currently available for international sites, will soon be obsolete. The 471 API schema released in late July contained additions to ItemTypeFilterCodeType that apply to searches with GetSearchResults and GetCategoryListings. The additions to ItemTypeFilterCodeType must be used instead of the StoresFixedPrice tag. For more information, please see the API Release Notes (which contain tables showing schema changes that occur every two weeks) at the Developer Documentation Center.
Bugs have been fixed involving GetSellerTransactionsCall and GetAttributesXSLCall. Specifically, in GetSellerTransactionsCall, the IncludeFinalValueFee input property now properly determines whether to include final value fees in the response. In GetAttributesXSLCall, a null value no longer is returned when no detail level is specified.
You can use the CallRetry class in the SDK to set up retry for calls in cases of 400- to 500-series HTTP errors (that is, HTTP application errors 400-499 and 501-599 from a web server). This addition to the CallRetry class includes a Get method and a Set method for a new exception (SdkHttpException) to capture such errors.
A patch has been incorporated into the SDK based on the change (with the 463 WSDL version) in the datatype of the StartCreationTime and EndCreationTime elements of GetMemberMessagesRequestType. The patch includes wrapper class updates in which java.util.Calendar replaces java.util.Date.
The 463 WSDL version introduced a backward-incompatible change in the datatype of the StartCreationTime and EndCreationTime elements of GetMemberMessagesRequestType; the elements are now based on xs:dateTime, not xs:date.
The eBay SDK for Java is updated for compatibility with J2SE 1.5.x (JDK 5.0). This enables applications to use more Java features and to benefit from improved performance. If you use J2SE 1.5.x (JDK 5.0), you must use Apache ANT 1.6 or later. For more information, see Post-Installation Configuration.
Due to changes to WSDL elements previously based on ShippingServiceCodeType and ListingDurationCodeType, SDK version 459 is backward-incompatible. Subsequent SDK releases are not backward-compatible with SDK versions based on a pre-457 WSDL version.
The sample formerly called "integrationLibrary" and the folder containing it have been renamed to "databaseSample."
The default detail level has changed. This has a major impact on the data returned by calls that use detail levels, such as GetItemCall. Previous versions of the eBay SDK for Java set a default detail level of ReturnAll. Now, no detail level is set; the value is left as null. For general information about detail levels, see the latest Trading Web Services API Guide at the Developer Documentation Center
The APISchemaBasedXMLPoster class enables you to post Trading API messages to the eBay API. Such messages comply with the Trading API but do not use a SOAP envelope or SOAP posting conventions (such as site ID in the URL). Note that the APISchemaBasedXMLPoster class does not support pure SOAP messages using a SOAP envelope or eBay SOAP API HTTP protocol conventions.
You can use the Sanity Test suite for simple testing after you change code in the SDK. The source files are installed with the SDK. For information about running the Sanity Test suite, see Post-Installation Configuration.
Based on customization of the version of Axis 1.1 delivered with the eBay SDK for Java, more information is provided by the SDK about exceptions during runtime. Now, information is provided about the tag involved.
When you use the ApiCall class to execute a request to the eBay API, HTTP compression is on by default. A customized version of the Axis 1.1 library (axis.jar) is included in the SDK to provide the HTTP compression and improve the performance of Axis 1.1. The HTTP compression reduces the size of response data from the API by, on average, 90 percent. HTTP compression is especially advantageous for calls such as GetCategories that return large amounts of data. To turn HTTP compression off, call ApiCall.setEnableCompression and set the value to false.
Using the ApiCall class of this eBay SDK for Java release to pass a SOAP API request object is the recommended thread-safe best practice for a Java application using the SOAP API. Additionally, doing so makes any Java application run in a thread-safe manner.
Performance enhancements, related to obtaining and caching bindings, have been implemented.
Please note that upgrades to an SDK should always be done in a test environment and fully tested before used in production.
In this section, you will use an ANT project file, sdkCodeGen.xml, to do the following:
To build the SDK, use the following steps:
The WSDL is located at http://developer.ebay.com/webservices/Version/ebaySvc.wsdl.
Version in the URL means latest or it means a numerical version of a WSDL release (see the top of the particular WSDL file).
In the case of Version meaning latest, the WSDL is the latest released version (http://developer.ebay.com/webservices/latest/ebaySvc.wsdl). If Version in the URL means a numerical version of the WSDL, Version is a number (for example, http://developer.ebay.com/webservices/445/ebaySvc.wsdl).
Hypothetically, if the latest release of the WSDL were 449, you would find that WSDL version at both http://developer.ebay.com/webservices/latest/ebaySvc.wsdl and at http://developer.ebay.com/webservices/449/ebaySvc.wsdl.
eBay has tested the eBay SDK for Java using the following client environments:
Note: You can use any integrated development environment (IDE) with the eBay SDK for Java, as long as it supports the above environments.
© 2005 - 2008 eBay Inc. All rights reserved.