You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2001/10/29 09:53:51 UTC
cvs commit: jakarta-jetspeed/src/java/org/apache/jetspeed/webservices/util SoapAccessBean.java UDDIAccessBean.java
taylor 01/10/29 00:53:51
Added: src/java/org/apache/jetspeed/webservices/util
SoapAccessBean.java UDDIAccessBean.java
Log:
Added Soap and UDDI beans contributed by Scott Roehrig.
Revision Changes Path
1.1 jakarta-jetspeed/src/java/org/apache/jetspeed/webservices/util/SoapAccessBean.java
Index: SoapAccessBean.java
===================================================================
/*
* SoapAccessBean.java
*
* Created on August 6, 2001, 3:59 PM
*/
package org.apache.jetspeed.webservices.util;
// import beans packages
import java.beans.*;
// import soap packages
import org.apache.soap.SOAPException;
import org.apache.soap.Constants;
import org.apache.soap.rpc.Call;
import org.apache.soap.rpc.Parameter;
import org.apache.soap.rpc.Response;
// import utility classes
import java.util.Vector;
// used to implement logging services
import org.apache.turbine.util.Log;
/** SoapAccessBean provides a Soap WebServices Client command bean pattern.
*
* This bean can be used to interact with webservices via soap. The WSDL
* file for the target web service is required since it contains the
* parameters required to interact with the service.
*
* @author Scott A. Roehrig
* @version 1.0
*/
public class SoapAccessBean implements java.io.Serializable {
// declare member variables
private transient Call request;
private Vector parameters;
private transient Log log;
private boolean loggingEnabled;
// declare methods
/** Default constructor required to support Serialization. */
public SoapAccessBean() {
request = new Call();
setLogging(false);
}
/** Creates new SoapAccessBean with parameters specified.
*
* @param targetURI type: java.lang.String -
* desc: targetURI for the services
*
* @param method type: java.lang.String -
* desc: service method
*/
public SoapAccessBean(String targetURI, String method) {
// create call object
request = new Call();
// set targetObjectURI, method, and encoding style
request.setTargetObjectURI(targetURI);
request.setMethodName(method);
request.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
// create Vector to store service parameters
parameters = new java.util.Vector();
}
/** Setter method for parameters property.
*
* The parameters property is used to set
* the various parameters required to interact
* with the service.
*
* @param parameters
* type: java.util.Vector -
* desc: stores service parameters
*/
public void setParameters(Vector parameters) {
this.parameters = parameters;
}
/** Parameters property getter method.
*
* @return java.util.Vector -
* desc: stores service parameters
*/
public java.util.Vector getParameters() {
return parameters;
}
/** Enables or disables logging.
*
* @param loggingEnabled
* type: java.lang.boolean -
* desc: indicates whether logging is enabled
*/
public void setLogging(boolean loggingEnabled) {
this.loggingEnabled = loggingEnabled;
// if logging is enabled, output log message
if (loggingEnabled == true) {
log = new Log();
log.debug("debug", "logging has been enabled");
}
else {
log = null;
}
}
/** Adds the needed parameter to the request.
*
* The parameters required by the service are defined within
* its WSDL descriptor file
*
* @param paramName
* type: java.lang.String -
* desc: the parameter name
*
* @param paramClass
* type: java.lang.Class -
* desc: the class of the parameter
*
* @param paramValue
* type:java.lang.Object -
* desc: the parameter
*
* @param encoding
* type:java.lang.String -
* desc: the parameter encoding
*/
public void addParameter(String paramName, Class paramClass, Object paramValue, String encoding) {
parameters.addElement(new Parameter(paramName, paramClass, paramValue, encoding));
}
/** Processes client service requests.
*
* @param url
* type: java.lang.String -
* desc: the service endpoint url
* defined in the WSDL file
*
* @throws SOAPException
* type: org.apache.soap.SOAPException -
* desc: thrown if an exception occurs
* contains details of the exception
*
* @return java.lang.Object -
* desc: the results of the service request
* must be cast by caller
*/
public Object processRequest(String url) throws SOAPException {
// create soap response
Response response = null;
Object result = null;
try {
request.setParams(parameters);
response = request.invoke(new java.net.URL(url), "");
// verify result
if (response.generatedFault() == true && loggingEnabled == true) {
log.warn("system", response.getFault().getFaultString());
}
else {
/* get result as object
* caller must cast result to proper type
*/
result = response.getReturnValue().getValue();
// if logging enabled, output response
if (loggingEnabled == true) {
log.debug("debug", response.getReturnValue().toString());
}
}
}
catch (java.net.MalformedURLException exception) {
// if logging enabled output exception
if (loggingEnabled == true) {
log.error("system", exception.getMessage(), exception);
}
}
return result;
}
}
1.1 jakarta-jetspeed/src/java/org/apache/jetspeed/webservices/util/UDDIAccessBean.java
Index: UDDIAccessBean.java
===================================================================
/*
* UDDIAccessBean.java
*
* Created on October 23, 2001, 7:39 PM
*/
package org.apache.jetspeed.webservices.util;
// import javabeans packages
import java.io.Serializable;
import java.beans.*;
// import uddi packages
import com.ibm.uddi.UDDIException;
import com.ibm.uddi.client.UDDIProxy;
import com.ibm.uddi.response.*;
// import soap packages
import org.apache.soap.SOAPException;
// import logging framework
import org.apache.turbine.util.Log;
/**
* UDDIAccessBean provides a command bean interface
* to UDDI registry services.
* Please note that currently only inquiry tasks are supported. I
* hope to add other task types soon.
* @author Scott A. Roehrig@IBM Corporation
* @version 1.0
*/
public class UDDIAccessBean extends Object implements Serializable {
// declare member variables
private transient UDDIProxy proxy;
private String queryURL;
private transient Log log;
private boolean loggingEnabled;
/** setter method for queryURL */
public void setQueryURL(String queryURL) {
this.queryURL = queryURL;
}
/** getter method for queryURL */
public String getQueryURL() {
return queryURL;
}
/** enables or disables logging services */
public void setLogging(boolean loggingEnabled) {
this.loggingEnabled = loggingEnabled;
// if logging is enabled, output log message
if (loggingEnabled == true) {
log = new Log();
log.debug("debug", "logging has been enabled");
}
else {
log = null;
}
}
/** creates new UDDIAccessBean */
public UDDIAccessBean() {
proxy = new UDDIProxy();
queryURL = "http://www-3.ibm.com/services/uddi/testregistry/inquiryapi";
setLogging(false);
}
/** creates new UDDIAccessBean with provided queryURL */
public UDDIAccessBean(String queryURL) {
proxy = new UDDIProxy();
this.queryURL = queryURL;
setLogging(false);
}
/** performs business lookup against registry */
public java.util.List queryBusiness(String name) {
// create list to store results
java.util.List businessList = new java.util.Vector();
// perform query
try {
proxy.setInquiryURL(queryURL);
BusinessList results = proxy.find_business(name, null, 0);
businessList = results.getBusinessInfos().getBusinessInfoVector();
if (loggingEnabled == true) {
java.util.ListIterator iterator = businessList.listIterator();
while (iterator.hasNext() == true) {
com.ibm.uddi.response.BusinessInfo business = (com.ibm.uddi.response.BusinessInfo)iterator.next();
log.debug("debug", business.getDefaultDescriptionString());
}
}
}
catch (java.net.MalformedURLException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
catch (UDDIException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
catch (SOAPException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
// return results
return businessList;
}
/** returns businessKey object associated with provided business */
public String getBusinessKey(String businessName) {
String businessKey = null;
// create List to store results
java.util.List businessList = new java.util.Vector();
// perform query
try {
proxy.setInquiryURL(queryURL);
BusinessList results = proxy.find_business(businessName, null, 0);
businessList = results.getBusinessInfos().getBusinessInfoVector();
// create iterator to search for match
java.util.ListIterator iterator = businessList.listIterator();
while (iterator.hasNext() == true) {
BusinessInfo business = (BusinessInfo)iterator.next();
if (business.getNameString().equals(businessName)) {
businessKey = business.getBusinessKey();
if (loggingEnabled == true) {
log.debug("debug", business.getNameString()+" has associated key "+businessKey);
}
}
}
}
catch (java.net.MalformedURLException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
catch (UDDIException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
catch (SOAPException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
// return result
return businessKey;
}
/** performs service lookup against registry */
public java.util.List queryService(String businessKey, String description) {
// create List to store results
java.util.List serviceList = new java.util.Vector();
// perform query
try {
proxy.setInquiryURL(queryURL);
ServiceList results = proxy.find_service(businessKey, description, null, 0);
serviceList = results.getServiceInfos().getServiceInfoVector();
if (loggingEnabled == true) {
java.util.ListIterator iterator = serviceList.listIterator();
while (iterator.hasNext() == true) {
com.ibm.uddi.response.ServiceInfo service = (com.ibm.uddi.response.ServiceInfo)iterator.next();
log.debug("debug", service.getNameString());
}
}
}
catch (java.net.MalformedURLException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
catch (UDDIException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
catch (SOAPException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
// return results
return serviceList;
}
/** returns serviceKey associated with provided service */
public String getServiceKey(String businessKey, String serviceName) {
String serviceKey = null;
// create List to store results
java.util.List serviceList = new java.util.Vector();
// perform query
try {
proxy.setInquiryURL(queryURL);
ServiceList results = proxy.find_service(businessKey, serviceName, null, 0);
serviceList = results.getServiceInfos().getServiceInfoVector();
// create iterator to search for match
java.util.ListIterator iterator = serviceList.listIterator();
while (iterator.hasNext() == true) {
ServiceInfo service = (ServiceInfo)iterator.next();
if (service.getNameString().equals(serviceName)) {
serviceKey = service.getServiceKey();
if (loggingEnabled == true) {
log.debug("debug", service.getNameString()+" has associated key "+serviceKey);
}
}
}
}
catch (java.net.MalformedURLException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
catch (UDDIException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
catch (SOAPException exception) {
exception.printStackTrace();
if (loggingEnabled == true) {
log.error("error", exception.getMessage(), exception);
}
}
// return result
return serviceKey;
}
/** called before object is garbage collected */
public void finalize() {
setLogging(false);
proxy = null;
log = null;
queryURL = null;
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>