如何从Java连接到SOAP服务器并运行我的服务器内置方法/服务?

如何从Java连接到SOAP服务器并运行我的服务器内置方法/服务?,java,php,zend-framework,Java,Php,Zend Framework,如何从Java连接到SOAP服务器并获取givemeSmile()方法?这在Java中不起作用,我正在尝试URLConnection,但我认为这不可能 我的问题是:有任何SOAP客户端库吗 Php(发件人): Java(接收器): 我将使用ApacheAxis2快速创建soap客户端。soap消息通常是xml格式,soap使用WSDL文件作为接口描述 包括一个5行程序来实现SOAP客户端,并从收到的SOAP消息中获取结果。您可以使用库发送HTTP请求。用法示例是 但这是一个低级的解决方案,你必须

如何从Java连接到SOAP服务器并获取givemeSmile()方法?这在Java中不起作用,我正在尝试URLConnection,但我认为这不可能

我的问题是:有任何SOAP客户端库吗

Php(发件人):

Java(接收器):


我将使用ApacheAxis2快速创建soap客户端。soap消息通常是xml格式,soap使用WSDL文件作为接口描述

包括一个5行程序来实现SOAP客户端,并从收到的SOAP消息中获取结果。

您可以使用库发送HTTP请求。用法示例是

但这是一个低级的解决方案,你必须手工实现很多细节,只有当你的应用程序不是很大的时候才选择它。如果这种方法不适合您,您应该使用一些SOAP客户端库,如Axis2或(示例)

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();
  }

}
  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
  }