电信话费多余怎么提现质押的钱可以提现吗

当前流行的几种开发webservice平台使用方法,性能对比及开发要点 -
- ITeye技术网站
最近在做一些关于webservice的项目,项目做完之后对当前流行的几种webservice的开发平台做了学习,比较,以下是各个平台开发实例,供大家参考,其中也含有我个人在开发过程中的一些感受和观点,纯属抛砖引玉,如有不对请指出,废话不多说直接进入正题。
目前比较流行的开发webservice的平台很多,主流的有如axis1.X,axis2.X,xfire,CXF等等,其中axis1.X属于第一代的webservice开发平台,axis2.X,xfire,CXF都属于第二代,在在第一代axis1.X中,axis1.4是最成熟最稳定的一个版本。axis2.X是Apache组织新出一个版本,与其说是axis1.X的升级版,到不如说是一个独立的版本,他完全颠覆了axis1.X的开发模式,xfire无论是效率和方便性都远高于axis1,但xfire的文档不如axis1全,但现在官网已经停止更新了,CXF是Apache组织把Celtix 和 XFire整合之后的新出一种,全称Apache CXF。(具体的可以去网上查询,这边只是对他们的实际应用做比较)
开发方式:
axis1.4有2种开发方式
首先,建立一个web工程,登陆Apache官网,下载axis1.4,从axis1.4中把开发所需要的jar包,并拷贝到web工程的lib包下,把以下内容拷贝添加到web.xml中。
&servlet&&servlet-name&AxisServlet&/servlet-name&&display-name&Apache-Axis Servlet&/display-name&&servlet-class&org.apache.axis.transport.http.AxisServlet&/servlet-class&&/servlet&
&servlet&&servlet-name&AdminServlet&/servlet-name&&display-name&Axis Admin Servlet&/display-name&&servlet-class&org.apache.axis.transport.http.AdminServlet&/servlet-class&&load-on-startup&100&/load-on-startup&&/servlet&
&servlet&&servlet-name&SOAPMonitorService&/servlet-name&&display-name&SOAPMonitorService&/display-name&&servlet-class&org.apache.axis.monitor.SOAPMonitorService&/servlet-class&&init-param&&param-name&SOAPMonitorPort&/param-name&&param-value&5001&/param-value&&/init-param&&load-on-startup&100&/load-on-startup&&/servlet&
&servlet-mapping&&servlet-name&AxisServlet&/servlet-name&&url-pattern&/servlet/AxisServlet&/url-pattern&&/servlet-mapping&
&servlet-mapping&&servlet-name&AxisServlet&/servlet-name&&url-pattern&*.jws&/url-pattern&&/servlet-mapping&
&servlet-mapping&&servlet-name&AxisServlet&/servlet-name&&url-pattern&/services/*&/url-pattern&&/servlet-mapping&
&servlet-mapping&&servlet-name&SOAPMonitorService&/servlet-name&&url-pattern&/SOAPMonitor&/url-pattern&&/servlet-mapping&
&session-config&&!-- Default to 5 minute session timeouts --&&session-timeout&5&/session-timeout&&/session-config&
&mime-mapping&&extension&wsdl&/extension&&mime-type&text/xml&/mime-type&&/mime-mapping&&mime-mapping&&extension&xsd&/extension&&mime-type&text/xml&/mime-type&&/mime-mapping&&!-- webService end--&
&welcome-file-list id="WelcomeFileList"&&welcome-file&index.jsp&/welcome-file&&welcome-file&index.html&/welcome-file&&welcome-file&index.jws&/welcome-file&&/welcome-file-list&
服务器端编写
一、即时发布jws(Java web service)
1、写一个java类,去掉其包名(如:package com.test.servcie),然后把Java类的后缀改为.jws,拷贝到上面所建项目的web-inf下,
2、启动服务器(任何能发布web工程的服务器都可以),访问即可访问。此方法简单,但是不适合大项目和带包名的服务。不推荐使用,了解就行。
二 定制发布WSDD (这个是最常用的方式)
1、在上面所建的web工程的src目录下写一个接口类 HelloService和实现类HelloServiceIMpl
package com.zsh.
public interface HelloService {public String getName(String name);}
package com.zsh.public class HelloServiceImpl implements HelloService{public String getName(String name){return "hello:"+}}
2、如果你有现成的server-config.wsdd文件的话最好,只需要在其中添加这么一段
&service name="HelloService " provider="java:RPC" style="wrapped" use="literal" xmlns:ns=""&&parameter name="className" value="com.zsh.service.HelloServiceImpl "/&&parameter name="allowedMethods" value="*"/&&parameter name="scope" value="Request"/&&/service&
将其拷贝到web-inf目录下,启动服务器(任何能发布web工程的服务器都可以),
没有server-config.wsdd的话在web-inf 下新建一个deploy.wsdd文件把下面内容的拷贝进去
&deployment xmlns=""xmlns:java=""&&service name="HelloService " provider="java:RPC"&&parameter name="className" value="com.zsh.service.HelloServiceImpl " /&&parameter name="allowedMethods" value="*" /&&parameter name="scope" value="request"&&/parameter&&/service&&/deployment&
再在web-info目录下建一个deploy.bat文件的批处理文件
把下面的拷贝进去
set Java_Cmd=java -Djava.ext.dirs=lib set Axis_Servlet=项目名/servlet/AxisServlet %Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd pause
双击执行,就会再旁边生成server-config.wsdd文件。
重启服务 访问访问(具体根据你们自己的web根路径)
这样服务器端就发布好,下面写客户端访问
客户端调用有三种方式
1、知道wsdl文档后,用命令生成
在web-inf目录下新建WSDL2Java.bat批处理文件
set Java_Cmd=java -Djava.ext.dirs=libset Output_Path=G:\workspace\webServiceDemo4\srcset Package=com.zsh.client%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package%
就会在G:\workspace\webServiceDemo4\src目录下自动生成客户端代码,优点比较自动化,缺点废代码太多了,不简洁。
2、自己手动写客户端,用动态调用方式(这个是最常用的方法)
package com.linkage.
import java.net.MalformedURLEimport java.net.URL;import javax.xml.rpc.ServiceEimport org.apache.axis.AxisFimport org.apache.axis.client.Cimport org.apache.axis.client.Spublic class WebClient {private static String endPointUrl = "";public static String getName(String request){String response =Call call =try {call = (Call) new Service().createCall();call.setTargetEndpointAddress(new URL(endPointUrl));response = (String)call.invoke("getName", {request}); } catch (ServiceException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (AxisFault e) {e.printStackTrace();}}public static void main(String[] args) {String request = "zhangsh";System.out.println(getName(request));}
3使用动态代理
这个方法需要在客户端新建一个服务的接口,如上面的HelloService 接口,具体的写法网上例子很多,在这就不多说了。
浏览: 40626 次
同顶5楼,安装对应版本的VC++运行库成功解决了
顶5楼,装vc++运行库就行了
看到有人不知道依赖哪些DLL把能够搜索到的dll都放到JDK中 ...
非常感谢,按思路解决了我的问题WebService注解汇总 - yufenfei - ITeye技术网站
博客分类:
Web Service 元数据注释(JSR 181)
@WebService
1、serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service。缺省值为 Java 类的简单名称 + Service。(字符串)
2、endpointInterface: 服务接口全路径, 指定做SEI(Service EndPoint Interface)服务端点接口
3、name:此属性的值包含XML Web Service的名称。在默认情况下,该值是实现XML Web Service的类的名称,wsdl:portType 的名称。缺省值为 Java 类或接口的非限定名称。(字符串
4、portName:
wsdl:portName。缺省值为 WebService.name+Port。
5、targetNamespace:指定你想要的名称空间,认是使用接口实现类的包名的反缀
6、wsdlLocation:指定用于定义 Web Service 的 WSDL 文档的 Web 地址。Web 地址可以是相对路径或绝对路径。(字符串)
注意:实现类上可以不添加Webservice注解
@WebMethod
注释表示作为一项 Web Service 操作的方法,将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。
仅支持在使用 @WebService 注释来注释的类上使用 @WebMethod 注释
1、operationName:指定与此方法相匹配的wsdl:operation 的名称。缺省值为 Java 方法的名称。(字符串)
2、action:定义此操作的行为。对于 SOAP 绑定,此值将确定 SOAPAction 头的值。缺省值为 Java 方法的名称。(字符串)
3、exclude:指定是否从 Web Service 中排除某一方法。缺省值为 false。(布尔值)
注释将一个方法表示为只有输入消息而没有输出消息的 Web Service 单向操作。
将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类
注释用于定制从单个参数至 Web Service 消息部件和 XML 元素的映射。
将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。
1、name :参数的名称。如果操作是远程过程调用(RPC)类型并且未指定partName 属性,那么这是用于表示参数的 wsdl:part 属性的名称。
如果操作是文档类型或者参数映射至某个头,那么 -name 是用于表示该参数的 XML 元素的局部名称。如果操作是文档类型、
参数类型为 BARE 并且方式为 OUT 或 INOUT,那么必须指定此属性。(字符串)
2、partName:定义用于表示此参数的 wsdl:part属性的名称。仅当操作类型为 RPC 或者操作是文档类型并且参数类型为BARE 时才使用此参数。(字符串)
3、targetNamespace:指定参数的 XML 元素的 XML 名称空间。当属性映射至 XML 元素时,仅应用于文档绑定。缺省值为 Web Service 的 targetNamespace。(字符串)
4、mode:此值表示此方法的参数流的方向。有效值为 IN、INOUT 和 OUT。(字符串)
5、header:指定参数是在消息头还是消息体中。缺省值为 false。(布尔值)
@WebResult
注释用于定制从返回值至 WSDL 部件或 XML 元素的映射。将此注释应用于客户机或服务器服务端点接口(SEI)上的方法,或者应用于 JavaBeans 端点的服务器端点实现类。
1、name:当返回值列示在 WSDL 文件中并且在连接上的消息中找到该返回值时,指定该返回值的名称。对于 RPC 绑定,这是用于表示返回值的 wsdl:part属性的名称。对于文档绑定,-name参数是用于表示返回值的 XML 元素的局部名。对于 RPC 和 DOCUMENT/WRAPPED 绑定,缺省值为 return。对于 DOCUMENT/BARE 绑定,缺省值为方法名 + Response。(字符串)
2、targetNamespace:指定返回值的 XML 名称空间。仅当操作类型为 RPC 或者操作是文档类型并且参数类型为 BARE 时才使用此参数。(字符串)
3、header:指定头中是否附带结果。缺省值为false。(布尔值)
4、partName:指定 RPC 或 DOCUMENT/BARE 操作的结果的部件名称。缺省值为@WebResult.name。(字符串)
@HandlerChain
注释用于使 Web Service 与外部定义的处理程序链相关联。只能通过对 SEI 或实现类使用 @HandlerChain 注释来配置服务器端的处理程序。
但是可以使用多种方法来配置客户端的处理程序。可以通过对生成的服务类或者 SEI 使用 @HandlerChain 注释来配置客户端的处理程序。此外,可以按程序在服务上注册您自己的 HandlerResolver 接口实现,或者按程序在绑定对象上设置处理程序链。
1、file:指定处理程序链文件所在的位置。文件位置可以是采用外部格式的绝对 java.net.URL,也可以是类文件中的相对路径。(字符串)
2、name:指定配置文件中处理程序链的名称。
浏览 37918
浏览: 561732 次
来自: 北京
renguoliang0508 写道你好,我又来了,按你这里的 ...
你好,我又来了,按你这里的实现。POST形式中获取不到参数。请 ...
首先对您标示感谢,从拦截器的实现那篇参照做的,过程有点异常最终 ...
请问这你2个压缩包为什么打成2个呢,下载之后解压失败。所以看不 ...
谢谢,成功了鍒╃敤AXIS寮

我要回帖

更多关于 电信手机话费提现 的文章

 

随机推荐