如何从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消息中获取结果。

07-24 09:37
查看更多