Whew - figured out that I needed to pass an associative array as arguments.
The call I needed to make was:

$client->testString(array("arg0"=>"test"));

Hope that helps someone else trying to figure out how to consume these
webservices via PHP (NuSOAP, SoapClient, Pear SOAP, etc.).

Regards,
Kaleb Walton


|------------>
| From:      |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |Kaleb Walton/Southfield/[EMAIL PROTECTED]                                    
                                                                             |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| To:        |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |[email protected]                                                
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Date:      |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |08/23/2007 08:56 AM                                                          
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
|------------>
| Subject:   |
|------------>
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|
  |Passing method parameters using PHP SoapClient failing                       
                                                                     |
  
>--------------------------------------------------------------------------------------------------------------------------------------------------|







As a requirement for our customers I'm trying to get SOAP communication
going using PHPs SoapClient object. Calling methods with no parameters
works fine (I get results) but when I pass in parameters I get a "Fault
occurred while processing" error message returned which I assume is coming
somewhere within the CXF framework.

The PHP code is pretty simple:

$client = new SoapClient('http://localhost:8080/services/Person?wsdl');
$client->testString('abc'); <-- This line returns an error message of
'Fault occurred while processing'


Service object:

@WebService(endpointInterface = "a.b.c.webservices.PersonService")
public class PersonServiceImpl implements PersonService {
  public String testString(String id) {
    System.out.println("PersonServiceImpl: testString: "+id);
    return id;
  }
}

Config:
  <bean id="personServiceImpl"
class="a.b.c.webservices.PersonServiceImpl"/>
  <jaxws:endpoint id="personServer" implementor="#personServiceImpl"
address="/Person" />
  <bean id="personService" class="net.iss.mss.webservices.PersonService"
factory-bean="clientFactory" factory-method="create" />

  <bean id="clientFactory"
class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
    <property name="serviceClass" value="a.b.c.webservices.PersonService"/>
    <property name="address"
value="http://localhost:8080/services/Person"/>
  </bean>

Also, it looks like CXF uses Java's Logging implementation, however, I
cannot seem to get it to log anywhere. Does anyone have any quick pointers
on how to get that going?

Regards,
Kaleb Walton

Reply via email to