Hi, I am using tomcat to deploy a business registry service, and I use APIs provided by uddi4j to interact with UDDI, and I encounter the following problem: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.reflect.InvocationTargetException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}hostname:csesci04 java.lang.reflect.InvocationTargetException at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)

at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)

at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)

at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(SAXParser.java:375) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)

at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645) at org.apache.axis.Message.getSOAPEnvelope(Message.java:424) at org.apache.axis.message.addressing.handler.AddressingHandler.processClientResponse(AddressingHandler.java:305)

at org.apache.axis.message.addressing.handler.AddressingHandler.invoke(AddressingHandler.java:110)

at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:190) at org.apache.axis.client.Call.invokeEngine(Call.java:2727) at org.apache.axis.client.Call.invoke(Call.java:2710) at org.apache.axis.client.Call.invoke(Call.java:2386) at org.apache.axis.client.Call.invoke(Call.java:2309) at org.apache.axis.client.Call.invoke(Call.java:1766) at uk.ac.besc.DataCentre.security.SecureOperation.Call(SecureOperation.java:238)

at uk.ac.besc.DataCentre.client.Client.main(Client.java:79) and the following is my service code: package uk.ac.besc.DataCentre.impl; import java.util.Properties; import java.util.Vector; import uk.ac.besc.DataCentre.dataCentrePara.DataCentreParm; import org.uddi4j.UDDIException; import org.uddi4j.client.UDDIProxy; import org.uddi4j.datatype.Name; import org.uddi4j.datatype.business.BusinessEntity; import org.uddi4j.response.AuthToken; import org.uddi4j.response.BusinessDetail; import org.uddi4j.response.BusinessInfo; import org.uddi4j.response.BusinessList; import org.uddi4j.response.DispositionReport; import org.uddi4j.response.Result; import org.uddi4j.util.FindQualifier; import org.uddi4j.util.FindQualifiers; /** * Sample code that exercises the publish API. Attempts * to save a businessEntity. * * <OL> * <LI>Sets up a UDDIProxy object * <LI>Requests an authorization token * <LI>Saves a businessEntity * <LI>Lists businesses starting with the the first letter of the * business's name. The new business should be in the list. * </OL> * * @author David Melgar ([EMAIL PROTECTED]) * @author Rajesh Sumra ([EMAIL PROTECTED]) */ public class DataCentre { private UDDIProxy proxy; private BusinessEntity returnedBusinessEntity; // Properties config = null; /*public static void main (String args[]) { SaveBusinessExample app = new SaveBusinessExample(); System.out.println("\n*********** Running DataCentre ***********"); app.run(); System.exit(0); }*/ // Construct a UDDIProxy object & a BusinessEntity object public DataCentre() { proxy = new UDDIProxy(); returnedBusinessEntity = new BusinessEntity(); } public String run(DataCentreParm business) { // Load samples configuration // config = Configurator.load(); try { System.setProperty("org.uddi4j.logEnabled", "true"); System.setProperty("org.uddi4j.TransportClassName", "org.uddi4j.transport.ApacheAxisTransport"); // Select the desired UDDI server node proxy.setInquiryURL("http://localhost:8080/juddi/inquire";); proxy.setPublishURL("http://localhost:8080/juddi/publish";); // Client's authorization token System.out.println("\nAuthtoken from client: " + business.getAuthToken()); // Pass in userid and password registered at the UDDI site //AuthToken token = proxy.get_authToken("juddi", "juddi"); //System.out.println("Returned authToken:" + token.getAuthInfoString()); System.out.println("\nSave '" + business.getBusinessName() + "'"); // Create minimum required data objects Vector entities = new Vector(); // Create a new business entity using required elements constructor // Name is the business name. BusinessKey must be "" to save a new // business BusinessEntity be = new BusinessEntity("", business.getBusinessName()); entities.addElement(be); // Save business System.out.println("Saving Business Entity..."); BusinessDetail bd = proxy.save_business(business.getAuthToken(),entities); System.out.println("Business Entity Saved"); // Process returned BusinessDetail object Vector businessEntities = bd.getBusinessEntityVector(); returnedBusinessEntity = (BusinessEntity)(businessEntities.elementAt(0)); System.out.println("The businessKey with the registered Business is: " + returnedBusinessEntity.getBusinessKey());

// Find all businesses that start with that particular letter e.g. 'S' for 'Sample Business'. /* String businessNameLeadingSubstring = (config.getProperty("businessName")).substring (0,1); System.out.println("\nListing businesses starting with " + businessNameLeadingSubstring + " after we publish"); // creating vector of Name Object Vector names = new Vector(); names.add(new Name(businessNameLeadingSubstring)); // Setting FindQualifiers to 'caseSensitiveMatch' FindQualifiers findQualifiers = new FindQualifiers(); Vector qualifier = new Vector(); qualifier.add(new FindQualifier("caseSensitiveMatch")); findQualifiers.setFindQualifierVector(qualifier); // Find businesses by name // And setting the maximum rows to be returned as 5. BusinessList businessList = proxy.find_business(names, null, null, null,null,findQualifiers,5); Vector businessInfoVector = businessList.getBusinessInfos().getBusinessInfoVector(); for( int i = 0; i < businessInfoVector.size(); i++ ) { BusinessInfo businessInfo = (BusinessInfo)businessInfoVector.elementAt(i); System.out.println(businessInfo.getDefaultNameString()); } */ } // Handle possible errors catch(UDDIException e) { System.out.println("Thrown UDDI Exceptions: "); e.printStackTrace(); //return "error"+e; } // Catch any other exception that may occur catch(Exception e) { System.out.println("The Other Exceptions:"); e.printStackTrace(); //return "error"+e; } return returnedBusinessEntity.getBusinessKey(); } }

I think the problem probably exists in proxy.save_business() method, and I don't know how to solve it, so does anyone know how to resolve my problem? This exception has annoyed me for days, thanks advance.
daiyue

_________________________________________________________________
享用世界上最大的电子邮件系统― MSN Hotmail。 http://www.hotmail.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to