1.首先先下载php的webservice包:NuSOAP,自己到官网去下载,链接就不给出来了,自己去google吧
    基于NoSOAP我们写了一个php的webservice的服务端,例子如下:

<?php
    header("Content-Type:text/html;charset=UTF-8");
    require('../lib/nusoap.php');
   
    $server = new soap_server();
    $server->configureWSDL('hellowsdl', 'urn:hellowsdl');
    $server->wsdl->schemaTargetNamespace = 'urn:hellowsdl';
   
    $server->register('hello',                 // method name
    array('name' => 'xsd:string'),         // input parameters
    array('return' => 'xsd:string'),       // output parameters
    'urn:hellowsdl',                       // namespace
    'urn:hellowsdl#hello',                 // soapaction
    'rpc',                                 // style
    'encoded',                             // use
    'Says hello to the caller'             // documentation
    );
   
    function hello($name) {
        if($name == ''){
            return new soap_fault('Client','','Must supply a valid name.');
        }
        return 'Hello 你好!:, ' . $name;
    }
   
    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
   
    $server->service($HTTP_RAW_POST_DATA);
?>
写完服务端后,自己得先测试一下,访问一下该php页面就可以看到如下的页面:

点击WSDL后,将可以看到wsdl定义的xml报文,把<soap:address location="[url]http://testweb.dev.php/testWebService/testWebService.php[/url]" /> 这串里面的[url]http://testweb.dev.php/testWebService/testWebService.php[/url]拷贝到java程序,下面的java调用webservice将会用到

现在开始写java调用webservice的程序了
例子如下:

package test;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class TestWebService {

public static void main(String[] args) throws Exception {
        //String endpoint = "http://localhost:8086/testwebservice/services/TestWebService";
        String endpoint = "http://testweb.dev.php/testWebService/testWebService.php";//该段就是上面刚将的地址
        Service service = new Service();
        Call call = (Call) service.createCall();
        call.setTargetEndpointAddress(new java.net.URL(endpoint));
        call.setOperationName("hello");

String param = new String("中文".getBytes(),"ISO-8859-1");//如果没有加这段,中文参数将会乱码
        String s = (String) call.invoke(new Object[] {param});
        s = new String(s.getBytes("ISO-8859-1"),"GBK");//如果没有转换编码,中文也会乱码
        System.out.println(s);
    }
   
}

nusoap.php定义这样的编码var $soap_defencoding = 'ISO-8859-1';所以本人用这样的编码试了一下不会产生中文乱码

转 java调用php的webService的更多相关文章

  1. java调用第三方的webservice应用实例

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...

  2. java调用第三方的webservice应用实例【转载】

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...

  3. java调用.net的webservice

    目录(?)[-] 一参考文献 二概述 三实例 注意点   一.参考文献 1. http://www.cnblogs.com/xuqifa100/archive/2007/12/13/993926.ht ...

  4. java调用.net的webservice接口

    要调用webservice,首先得有接口,用已经写好的接口地址在myEclipse的目标project中,右键->new web service client-> 选择JAX-WS方式,点 ...

  5. java 调用wsdl的webservice接口 两种调用方式

    关于wsdl接口对于我来说是比较头疼的 基本没搞过.一脸懵 就在网上搜 看着写的都很好到我这就不好使了,非常蓝瘦.谨以此随笔纪念我这半个月踩过的坑... 背景:短短两周除了普通开发外我就接到了两个we ...

  6. Java调用net的webservice故障排除实战分享

    转载地址:http://blog.sina.com.cn/s/blog_4c925dca01014y3r.html 前几天公司要接入国外公司的一个业务功能,对方是提供的net产生的webservice ...

  7. java调用.net的webservice[转]

    一.引用jar包. 完整包路径:http://files.cnblogs.com/files/chenghu/axis完整jar包.rar 二.java程序代码如下所示: package edu.sj ...

  8. java调用sap的webservice(需要登录验证)

    1.Base64.java /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache ...

  9. wsdl 生成 java 代码 java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例 推荐使用, 并且设置了 utf8

    推荐使用, 并且设置了 utf8 wsdl2java -p cn.smborderservice  -encoding utf-8 -d f:\logink\src -all -autoNameRes ...

随机推荐

  1. jQuery.toggleClass() 和detach()方法详解

    一.toggleClass()函数: toggleClass()函数用于切换当前jQuery对象所匹配的每一个元素上指定的css类名.所谓"切换",就是如果该元素上已存在指定的类名 ...

  2. 最简单的方式用上https

    1.在这个网站申请ssl证书 https://www.sslforfree.com 2.下载的证书使用这个脚本处理一下 #!/bin/bash HOST_NAME=$1 cp certificate. ...

  3. PHP面向对象之接口 (interface)

    1.使用接口,接口中指定了某个类必须实现的某些方法,这些方法都是空的(不需要定义这些方法的具体内容) 2. 要实现一个接口用关键字implements,类中必须包含接口中所有的方法,否则会出现一个致命 ...

  4. Loadrunner关于页面检查的几个函数详解

    环境:Loadrunner版本:8.0自建一个test.html文件:<html><head><meta name="google1" content ...

  5. Vue props 单向数据流

    1.props通信 注意:DOM模板的驼峰命名props要转为短横分割命名. <!DOCTYPE html> <html lang="zh"> <he ...

  6. JDBC数据库编程:callableStatement接口

    了解MySQL存储过程建立, 了解存储过程中参数传递的三种方式 了解callablestatement调用存储过程操作. 因为在现在开发中,使用存储过程的地方越来越少,所以,对于存储过程使用,只需要了 ...

  7. 在windows 2012中安装sharepoint 2013时遇到问题的处理办法

    众所周知,sharepoint 2013是早于windows 2012的,所以在安装的时候,总会出现各种奇怪的问题,也就是所谓的一个个坑,为了减少大家掉到坑里的次数和排除故障的时间,我在这里记录下我曾 ...

  8. java基础讲解09-----接口,继承,多态

    还有什么包装类,数字类,这些简单的我就不想过去介绍,前面也大概的介绍了下,继承,多态 1.类的继承 继承的思想:基于某个父类的扩展,制定一个新的子类.子类可以继承父类原有的属性,方法,也可以重写父类的 ...

  9. 从构建分布式秒杀系统聊聊验证码 给大家推荐8个SpringBoot精选项目

    前言 为了拦截大部分请求,秒杀案例前端引入了验证码.淘宝上很多人吐槽,等输入完秒杀活动结束了,对,结束了...... 当然了,验证码的真正作用是,有效拦截刷单操作,让羊毛党空手而归. 验证码 那么到底 ...

  10. hdu2647(拓扑排序)

    链接:点击打开链接 题意:每一个人的基本工资为888,给出两个人的关系a,b,代表a的工资比b高问满足全部条件的话,最少须要支付多少钱 代码: #include <map> #includ ...