Holger,
Thank you for the reply - as it turns out I was not passing an associative
array in my method call. After reviewing the WSDL a bit more closely I
discovered that my arguments had names such as arg0, arg1, etc. I found
that the following works for me:
$result = $client-testString(array(arg0=test));
The following does NOT work for me (although it would be nice if it did):
$result = $client-testString(test);
Again, thanks for the reply and I'll look into those other configuration
options.
Regards,
Kaleb
|
| From: |
|
--|
|Holger Stolzenberg [EMAIL PROTECTED]
|
--|
|
| To:|
|
--|
|cxf-user@incubator.apache.org
|
--|
|
| Date: |
|
--|
|08/24/2007 04:48 AM
|
--|
|
| Subject: |
|
--|
|AW: Passing method parameters using PHP SoapClient failing
|
--|
The PHP call to your WS method seems to be false. You have to provide a
associative array for the WS method params. Following code shows how we do
it:
// the wsdl URL of your service to test
$serviceWsdl =
'http://127.0.0.1:8080/EEX_Shop_Backend/ws-api/CustomerService?wsdl';
// the parmeters to initialize the client with
$serviceParams = array( 'trace' = 1, 'soap_version' = SOAP_1_1, 'style'
= SOAP_DOCUMENT, 'use' = SOAP_LITERAL );
// create the SOAP client
$client = new SoapClient( $serviceWsdl, $serviceParams );
// method call
$res = $client-getCustomerById( array( 'auth' = passwd, 'customerId' =
2 ) );
var_dump( $res );
-Ursprüngliche Nachricht-
Von: Kaleb Walton [mailto:[EMAIL PROTECTED]
Gesendet: Donnerstag, 23. August 2007 14:55
An: cxf-user@incubator.apache.org
Betreff: 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