You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by weng daiyue <da...@hotmail.com> on 2006/10/03 16:54:23 UTC

Encountered java.lang.reflect.InvocationTargetException

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 (dmelgar@us.ibm.com) 
* @author Rajesh Sumra (rajesh_sumra@hp.com) 
*/ 

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: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org