AW: Passing method parameters using PHP SoapClient failing

2007-08-24 Thread Holger Stolzenberg
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


Re: AW: Passing method parameters using PHP SoapClient failing

2007-08-24 Thread Kaleb Walton

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