如何从Java连接到SOAP服务器并获取GivemeSmile()方法?这在Java中不起作用,我正在尝试URLConnection,但我认为不可能吗?
我的问题是:是否有SOAP客户端库?
php(发送者):
class Zend_Controller_Action
{
/**
* Client module - always works
*/
public static function indexAction()
{
$client = new Zend_SOAP_Clnt('http://www.test.gov/index/server');
$result = $client->givemeSmile('test');
var_dump($result); // output: hehehe test
exit;
}
/**
* Server module - works
*/
public static function serverAction()
{
require_once APPLICATION_PATH . '/models/Soap.php';
if ( $if_mannually_url_is_open===true ){
$server = new Zend_Soap_AutoDiscover();
}else{
$server = new Zend_Soap_Server("http://www.test.gov/index/server");
}
$server->setClass('My_Model_Soap')->forJava();
$server->handle()->render();
}
}
Java(接收方):
URL url = new URL(getServer(1)); // to WSDL/SOAP link
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null)
{
line.givemeSmile(); // expected output: hehehe test
}
最佳答案
我会使用apache轴2快速创建一个soap客户。肥皂消息通常为xml格式,并且SOAP使用WSDL文件作为接口描述。
Here is a quick introduction包含一个5层代码,用于实现SOAP客户端并从收到的SOAP消息中获取结果。