苹果7买日本买iphone中国能用吗版的在中国用有什么缺点吗

2016年1月 Java大版内专家分月排行榜第一2015年12月 Java大版内专家分月排行榜第一2015年9月 Java大版内专家分月排行榜第一2015年8月 Java大版内专家分月排行榜第一
2016年3月 Java大版内专家分月排行榜第二2016年2月 Java大版内专家分月排行榜第二2015年11月 Java大版内专家分月排行榜第二2015年10月 Java大版内专家分月排行榜第二
2016年1月 Java大版内专家分月排行榜第一2015年12月 Java大版内专家分月排行榜第一2015年9月 Java大版内专家分月排行榜第一2015年8月 Java大版内专家分月排行榜第一
2016年3月 Java大版内专家分月排行榜第二2016年2月 Java大版内专家分月排行榜第二2015年11月 Java大版内专家分月排行榜第二2015年10月 Java大版内专家分月排行榜第二
2016年1月 Java大版内专家分月排行榜第一2015年12月 Java大版内专家分月排行榜第一2015年9月 Java大版内专家分月排行榜第一2015年8月 Java大版内专家分月排行榜第一
2016年3月 Java大版内专家分月排行榜第二2016年2月 Java大版内专家分月排行榜第二2015年11月 Java大版内专家分月排行榜第二2015年10月 Java大版内专家分月排行榜第二
2016年1月 Java大版内专家分月排行榜第一2015年12月 Java大版内专家分月排行榜第一2015年9月 Java大版内专家分月排行榜第一2015年8月 Java大版内专家分月排行榜第一
2016年3月 Java大版内专家分月排行榜第二2016年2月 Java大版内专家分月排行榜第二2015年11月 Java大版内专家分月排行榜第二2015年10月 Java大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。Axis1.4框架实现webservice服务器和客户端_Java教程_动态网站制作指南
Axis1.4框架实现webservice服务器和客户端
来源:人气:987
一:提前准备
旗舰版, Eclse,JDK1.6,tomcat6.0,Axis1.4的包。 至于Axis1.4包网上可以下载,如果是在找不到可以留言给我。
将解压后的 axis-1_4\webapps\下的axis 目录考到 %TOMCAT_HOME%/Webapps/ 目录下启动tomcat后在浏览器里输入 http://localhost:8080/axis 会看到下图所示
点击上图中的 Validataion 链接,页面上会提示已经有的包和缺少的包的信息,根据提示将必须的包下载全,将这些类包复制到 %tomcathome%/webapps/axis/WEB-INF/lib/目录下重新启动tomcat,直到Validation页面中看不到有Error与Warning的提示信息。
Axis支持三种web service的客户端访问方式,分别为:
Dynamic Invocation Interface ( DII)
Dynamic oxy方式
PS:看到很多资料将上述方式列为Web Servcie的三种&部署和开发方法,个人觉得有些欠妥
下面介绍axis部署和发布web service的方式:
JWS  - 即时发布
WSDD &&定制发布
三:JWS --即时发布
&JWS( WebService)是最简单的一种方式。Axis允许把普通Java类的源文件的扩展名改为.jws,然后把它简单的copy到AXIS_HOME下。这样,Axis 会自动编译.jws文件,&并把它自动加入到Java Web Servie的服务中。非常简单和灵活,但是这种方式的缺点是:只能是java源代码,同时类中不能含有包名。具体过程如下
1.&用Eclipse或者文本编辑器编写一个java类&SayHello.java(此类不含包名)
public class SayHello {
public String sayMsg(String name){
return "Hello: "+
  2. 将上面的类(SayHello.java)copy到 %tomcat_home%/webapps/axis/ 目录下,只需要把类的源文件(不是class)到这个目录下,重命名为:SayHello.jws
3. 打开浏览器输入:&http://localhost:8080/axis/SayHello.jws 会看到:
点击上图&&Click to see the WSDL 的链接,就可以看到生成的wsdl。
4. 使用&Dynamic Invocation Interface ( DII)&方式访问客户端 实现如下:
import org.apache.axis.client.C
import org.apache.axis.client.S
public class TestClient {
* @see axis框架实现简单的 webService客户端, 读webServicez服务器内容,如果有问题请留言
* @param webUrl 设置调用的wsdl路径, 即访问的路径
* @param method 设置调用的方法名
* @param parameters 设置调用的方法的参数
* @author 邓龙胜(微信simpledls)
* @throws Exception
public static void readerWebserviceContent(String webUrl,String method,Object[] parameters) throws Exception {
Service service = new Service();
Call call = (Call) service.createCall();
// 这里是要调用的方法名
call.settionName(method);
// 设置调用的wsdl路径, 即访问的路径
call.setTargetEndpointAddress(webUrl);
// parameters 是为方法传递参数, 必须和调用的方法体的参数类型和数量一致
String val = (String) call.invoke(parameters);
System.out.println("这是webservice服务器返回的信息:/n" + val);
* @param args
* @throws Exception
public static void main(String[] args) throws Exception {
String webUrl = "http://192.168.1.121:8080/axis/SayHello.jws";
String method = "sayMsg";
Object[] parameters= new Object[] { "axis web service" };
TestClient.readerWebserviceContent(webUrl, method, parameters);
四:WSDD(Web Service Deployment Descriptor)文件发布Web Service
为了使大家懂的如何映射实体类,故下文我将用&实体类(javaBean)&作为参数的方式引导大家,那么先在项目中新建一个JavaBean: UserBean.java&代码如下:
package wsaxis.
public class UserBean {
private String userN //姓名
public String getUserName() {
return userN
public void setUserName(String userName) {
this.userName = userN
public Integer getAge() {
public void setAge(Integer age) {
this.age =
2. 创建一个&MessageService.java 类, 代码如下:
import wsaxis.bean.UserB
public class MessageService {
* UserBean 作为参数*/
public String getBeanStr(UserBean bean) {
return "You Name:" + bean.getUserName() + " , You Age:" + bean.getAge();
3. 创建一个&deploy.wsdd 文件, 该文件主要用于生成发布文件&server-config.wsdd , &在项目中依次点击: new --& other --&file &内容如下:
&deployment name="test" ns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"&
&service name="MessageService" provider="java:RPC" style="rpc" use="encoded"&
&parameter name="className" value="wsaxis.MessageService"/&
&parameter name="allowedMethods" value="*"/&
&typeMapping xmlns:ns1="" qname="ns1:userBean"
type="java:wsaxis.bean.UserBean"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
&/service&
&/deployment&
上面要注意:&value="wsaxis.MessageService" , 这个&MessageService 就是你创建的那个&MessageService.java,路径一定不要搞错 !
&     &type="java:wsaxis.bean.UserBean", 这个&UserBean 就是你创建的那个&UserBean.java , 路径一定不要搞错 !
4. 创建一个&undeploy.wsdd 文件, 该文件主要用于取消发布 web service , 创建方法同上。 其内容如下
&undeployment
xmlns="http://xml.apache.org/axis/wsdd/"&
&!-- Services from MessageService WSDL service --&
&service name="MessageService"/&
&/undeployment&
5.&将上面写好的两个类已编译好的class文件复制到 %tomcat_home%/axis/WEB-INF/class/ 目录下,(注意:要完整的目录结构复制过来),然后在把两个wsdd文件复制到%tomcat_home%/axis/WEB-INF/&目录下,打开cmd进入 %tomcat_home%/axis/WEB-INF/ 目录下:
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -p 8080 deploy.wsdd&
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -p 8080 -s /axis/servlet/AxisServlet deploy.wsdd
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient &lhttp://localhost:8080/axis/services/MessageService deploy.wsdd
分别用CMD 输入如上命令,如果成功系统会提示如下:
Processing file deploy.wsdd&Admin&Done processing&/Admin&
(有可能第三条不成功,但是没关系,主要看下&%tomcat_home%/axis/WEB-INF/ &目录下是否已经生成&server-config.wsdd 文件) , 如果有此文件 则在浏览器输入
http://localhost:8082/axis/services/MessageService &&会看到下图
已下班 ... 后续继续跟新 !!
优质网站模板WebServices应用(Java技术)
共有378位成员   人气指数 -   最新排名 -
【话题】Axis下WebService,call.invoke()方法总是返回空值,提供的服务也没调用
17:22:00 来自:bqy 浏览数:63次
IsAdminLogin.java调用CanteeAdminLoginService.jws服务中的AdminLogin()方法,AdminLogin()有调用了同文件中的adminLogin()方法。
还有server-config.wsdd文件也有。
*************************************************************************
提供服务的那部分代码(CanteeAdminLoginService 中的)
public boolean adminLogin(String username,String password){
& & & & System.out.println(&CanteeAdminLoginService.jws中username:& + username);
System.out.println(&CanteeAdminLoginService.jws中password:& + password);
boolean flag =
ConnDb cd = new ConnDb();
conn = cd.getConn();
ps = conn.prepareStatement(&select * from admintable where adminaccount=? and adminpasswd=?&);
ps.setString(1, username);
ps.setString(2, password);
rs = ps.executeQuery();
if(rs.next()){
System.out.println(&Try中 flag in CanteeAdminLoginService :& + flag);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(&flag in CanteeAdminLoginService :& + flag);
public String AdminLogin(String username,String password){
if( adminLogin( username, password)){
return &true&;
return &false&;
//return &test&;
*************************************************************************
调用服务的代码(IsAdminLogin.java中的)
public boolean adminLogin(String username,String password){
boolean flag =
String login = &&;
System.out.println(&调用服务之前login:& + login);
String endpoint = &http://localhost:8080/Canteen/CanteeAdminLoginService.jws&;
Service service = new Service();
Call call =
call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(&AdminLogin&);
//call.addParameter(username, XMLType.XSD_STRING, ParameterMode.IN);
//call.addParameter(password, XMLType.XSD_STRING, ParameterMode.IN);
//call.setUseSOAPAction(true);
// 填写你要调用的方法名称
login = (String)call.invoke(new Object[] { username,
password });
System.out.println(call.invoke(new Object[] { username,
password }));
System.out.println(&服务返回后login:& + login);
System.out.println(&username:& + username);
System.out.println(&password:& + password);
}catch(Exception e){
e.printStackTrace();
if(&true&.equals(login)){
************************************************************************
请哪位大侠帮帮忙?改了一天了,没改出来,55555
臭小孩他妈回复于12日17点30分 
马昊天回复于12日17点37分 
你先确定服务端发布正确,在浏览器 看看wsdl能否查看
然后使用axis的工具生成客户端,看看是不是客户端代码写错了
gaochuanqingyue回复于12日17点45分 
你是用什么发布webservice 的?
我上次用weblogic 8.1 发布webservice服务遇到了和你一样的错误
liang000回复于12日17点52分 
都该哪些项?我是个新手啊
beizi回复于12日18点00分 
不知道那里的错,这些天一直懒得动它
贯嘉坤回复于12日18点09分 
谢谢各位回帖学到很多,顺便回答7楼的问题,用的是Tomcat
nongyingh回复于12日18点17分 
结贴去喽。
壮志凌云816回复于12日18点25分 
login = (String)call.invoke(new Object[] { username,
password });
你这个定义的是STRING类型,服务端返回的是BOOLEAN
给你贴段我的:
这是服务端代码:
public selectInfoBean selectInfoResult (String userName,String password,String idnName
,String requestTime,String idnPassword,Integer searchType
,String preDef,String preDefalut)
selectInfoBean info = new selectInfoBean();
System.out.print(&is ok&);
if(&fly&.equals(userName))
info.setAdmcityzh(userName);
info.setAdmcountry(idnName);
客户端代码如下:
public static void main(String[] args) {
String targetEendPoint = &http://localhost:8080/axis/services/SelectInfoService&;& & &
Service services = new Service();
Call call =
//创建Call实例,也是必须的!
call = (Call) services.createCall();
QName qn = new QName(&urn:AnalyzeInfoBean&, &InfoBean& );& &
call.registerTypeMapping(OrderBean.class, qn,& &
new org.apache.axis.encoding.ser.BeanSerializerFactory(selectInfoBean.class, qn),& & & & & &
new org.apache.axis.encoding.ser.BeanDeserializerFactory(selectInfoBean.class, qn));& &
& & & & & &
call.setTargetEndpointAddress( new java.net.URL(targetEendPoint) );& &
call.setOperationName( new QName(&SelectInfoService&, &selectInfoResult&) );& &
//返回String,传入参数字符串
selectInfoBean result = (selectInfoBean) call.invoke(new Object[] { &fly&,&&,&dddd&,&&,&&,1,&&,&& });
System.out.println(result.getAdmcityzh());
System.out.println(&Success...&);& &
System.out.println(result.getAdmcountry());&
} catch (Exception ex) {
ex.printStackTrace();
这是打印结果:
Success...
南方-1996回复于12日18点31分 
看看环境,搭建的是否正确.
胜利者回复于12日18点39分 
我也是新手,才接触这个,现在在弄那个WEBSERVICE这个认证,也是云里雾里的,有事多交流。
hexin_625回复于12日18点46分 
xingfu5253578回复于12日18点53分 
可能是webservice.jar和axis.jar有冲突,导致NullPointException
WebServices应用(Java技术)的其他话题...
热门脚本语言:关于webservice调用的问题,各位请进来帮下忙_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:595,521贴子:
关于webservice调用的问题,各位请进来帮下忙收藏
关于调用webservice接口的问题,昨天早上用的时候还是好好的、但是到了下午再去启动程序调用webservice接口的时候出现了错误。AxisFault faultCode: {}HTTP faultSubcode: faultString: (0)null faultActor: faultNode: faultDetail:
{}:return code:
{}HttpErrorCode:0(0)null
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.dic.diass.util.WsdlUtil.callWebService1(WsdlUtil.java:383)
at com.dic.diass.util.WsdlUtil.main(WsdlUtil.java:660)
at com.dic.diass.listener.CallListener.contextInitialized(CallListener.java:21)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
上海java培训一般需要4-8周,就可完全掌握,名企就业.0元试学.java培训的费用一般根据培训的课时决定,可申请0元试学.点击咨询..
这真心的很无语、他们那边开放的别的接口都可以调用、唯独这个接口不可以。这个到底是什么错误呢?是我这边出错了,还是他们那边出错了呢?各位请帮下忙好不?
来人啊,帮下忙哈
问题找到了、是传的图片问题、但是问题又来了、public static byte[] getBytes(String file) throws IOException{byte[] b = new byte[1024];URL url =InputStream in =ByteArrayOutputStream output = new ByteArrayOutputStream();try {url = new URL(file);URLConnection con = url.openConnection();in = con.getInputStream();int numBytesRead = 0;while((numBytesRead=in.read(b))!=-1){output.write(b,0,numBytesRead);}b=output.toByteArray();in.close();output.close();} catch (MalformedURLException e) {e.printStackTrace();in.close();} catch (IOException e) {e.printStackTrace();in.close();}System.out.println(&图片长度:=&+b.length);} 这段是封装图片的代码、不知道是我这里出错了还是webservice那边解析图片出错了、我这边60兆的图片还是能打印出来图片的长度的、
@我是悲情反派控
楼主开始的问题能不能具体描述下怎么解决的
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 日本买iphone中国能用吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信