Posted on 2006-11-30 23:32
Zou Ang 阅读(762)
评论(1) 编辑 收藏 所属分类:
今天在学习Web Service的时候得知Amazon提供了一个搜索的Web Service,于是考虑写一个方法访问一下看看..
Amazon Web Service 的WSDL:
http://soap.amazon.com/schemas2/AmazonWebServices.wsdl得到了WSDL以后,在命令行执行:
java org.apache.axis.wsdl.WSDL2Java
http://soap.amazon.com/schemas2/AmazonWebServices.wsdl就会在%AXIS_HOME%目录下生成一个包结构:com.amazon.soap.*;里面有很多包,不过如果看了上面那个wsdl的话应该知道主要的类是
AmazonSearchService和AmazonSearchPort,前面是服务,后面是调用方法的对象..
AmazonSearchService:
public interface AmazonSearchService extends javax.xml.rpc.Service {
public java.lang.String getAmazonSearchPortAddress();
public com.amazon.soap.AmazonSearchPort getAmazonSearchPort() throws javax.xml.rpc.ServiceException;
public com.amazon.soap.AmazonSearchPort getAmazonSearchPort(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
} AmazonSearchPort:
package com.amazon.soap;
public interface AmazonSearchPort extends java.rmi.Remote {
public com.amazon.soap.ProductInfo keywordSearchRequest(com.amazon.soap.KeywordRequest keywordSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo powerSearchRequest(com.amazon.soap.PowerRequest powerSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo browseNodeSearchRequest(com.amazon.soap.BrowseNodeRequest browseNodeSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo asinSearchRequest(com.amazon.soap.AsinRequest asinSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductLine[] blendedSearchRequest(com.amazon.soap.BlendedRequest blendedSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo upcSearchRequest(com.amazon.soap.UpcRequest upcSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo authorSearchRequest(com.amazon.soap.AuthorRequest authorSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo artistSearchRequest(com.amazon.soap.ArtistRequest artistSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo actorSearchRequest(com.amazon.soap.ActorRequest actorSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo manufacturerSearchRequest(com.amazon.soap.ManufacturerRequest manufacturerSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo directorSearchRequest(com.amazon.soap.DirectorRequest directorSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo listManiaSearchRequest(com.amazon.soap.ListManiaRequest listManiaSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo wishlistSearchRequest(com.amazon.soap.WishlistRequest wishlistSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ListingProductDetails exchangeSearchRequest(com.amazon.soap.ExchangeRequest exchangeSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.MarketplaceSearch marketplaceSearchRequest(com.amazon.soap.MarketplaceRequest marketplaceSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.SellerProfile sellerProfileSearchRequest(com.amazon.soap.SellerProfileRequest sellerProfileSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.SellerSearch sellerSearchRequest(com.amazon.soap.SellerRequest sellerSearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ProductInfo similaritySearchRequest(com.amazon.soap.SimilarityRequest similaritySearchRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ShoppingCart getShoppingCartRequest(com.amazon.soap.GetShoppingCartRequest getShoppingCartRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ShoppingCart clearShoppingCartRequest(com.amazon.soap.ClearShoppingCartRequest clearShoppingCartRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ShoppingCart addShoppingCartItemsRequest(com.amazon.soap.AddShoppingCartItemsRequest addShoppingCartItemsRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ShoppingCart removeShoppingCartItemsRequest(com.amazon.soap.RemoveShoppingCartItemsRequest removeShoppingCartItemsRequest) throws java.rmi.RemoteException;
public com.amazon.soap.ShoppingCart modifyShoppingCartItemsRequest(com.amazon.soap.ModifyShoppingCartItemsRequest modifyShoppingCartItemsRequest) throws java.rmi.RemoteException;
}
我打算调用keywordSearchRequest这个方法,这个方法有一个keywordRequest参数,返回一个ProductInfo对象
public com.amazon.soap.ProductInfo keywordSearchRequest(com.amazon.soap.KeywordRequest keywordSearchRequest) throws java.rmi.RemoteException;
下面是调用Web Service的类:
/** *//**
* org.zsu.zouang
* 2006-11-30
*/
package org.zsu.zouang;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import com.amazon.soap.AmazonSearchPort;
import com.amazon.soap.AmazonSearchServiceLocator;
import com.amazon.soap.Details;
import com.amazon.soap.KeywordRequest;
import com.amazon.soap.ProductInfo;
/** *//**
* 2006-11-30
* @author Zou Ang
* Contact <a href ="mailto:richardeee@gmail.com">Zou Ang</a>
*/
public class MyAmazonClient {
/** *//**
* @param args
*/
public static void main(String[] args) {
KeywordRequest keyword = new KeywordRequest();
keyword.setKeyword("Java");
keyword.setMode("books");
keyword.setTag("D3HW0PG66IPLAM");
keyword.setDevtag("D3HW0PG66IPLAM");
keyword.setPage("1");
keyword.setType("heavy");
keyword.setSort(null);
keyword.setVariations(null);
keyword.setLocale(null);
// TODO Auto-generated method stub
try {
AmazonSearchPort port = new AmazonSearchServiceLocator().getAmazonSearchPort();
ProductInfo info = port.keywordSearchRequest(keyword);
System.out.println("Number of Results :" + info.getTotalResults());
Details[] details = info.getDetails();
for(Details d : details){
System.out.println("ISBN :" + d.getIsbn() + " Name:" + d.getProductName());
}
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} 返回的结果:
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
Number of Results :5161
ISBN :0072253606 Name:SCJP Sun Certified Programmer for Java 5 Study Guide (Exam 310-055) (Certification Press Study Guides)
ISBN :0596007124 Name:Head First Design Patterns (Head First)
ISBN :0553803905 Name:Ship of Ghosts: The Story of the USS Houston, FDR's Legendary Lost Cruiser, and the Epic Saga of Her Survivors
ISBN :0596009410 Name:Mac OS X Tiger: Missing Manual
ISBN :0596101996 Name:JavaScript: The Definitive Guide
ISBN :0131483986 Name:Java How to Program (6th Edition) (How to Program (Deitel))
ISBN :0596009208 Name:Head First Java, 2nd Edition
ISBN :1591968097 Name:What is WebSphere? Java, J2EE, Portal and Beyond! (Demystifying IBM's Middle Tier Technology, Vol. 1)
ISBN :0596005407 Name:Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam (SCWCD)
ISBN :1932394613 Name:Ajax in Action 下一步可能打算写个GUI的Amazon搜索客户端