- 浏览: 700743 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (239)
- 系统架构设计 (16)
- java collection framework (2)
- java分布式 (4)
- java多线程 (0)
- 故障处理及调优 (16)
- 软件开发过程及管理 (28)
- OS (5)
- 常用算法 (3)
- design pattern (8)
- transaction (7)
- java apps (48)
- corejava (7)
- java and DB (10)
- cache (0)
- webservice (14)
- web前端 (25)
- 报表 (4)
- 日志系统设计 (3)
- Oracle (4)
- mysql (11)
- xml (11)
- 数据源配置管理 (3)
- 企业数据存储 (4)
- php (2)
- 测试 (1)
最新评论
-
orangebook:
对于初学者来说,这样编写可能会误导,理解更烦锁。
观察者模式(发布-订阅) -
liudajiang:
呵呵 startThreads(rand ...
实践缩小Java synchronized 粒度 -
zengwenbo5566:
谢谢博主,学习了
解决getOutputStream() has already been called for this response -
u011335423:
大神厉害啊 可以了
解决getOutputStream() has already been called for this response -
xiang37:
...
解决getOutputStream() has already been called for this response
3. 修改web.xml
加入如下代码
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener>
<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>
<!-- uncomment this if you want the admin servlet -->
<!-- currently the W3C havent settled on a media type for WSDL;
http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
for now we go with the basic 'it's XML' response -->
<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>
加入如下代码
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener>
<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>
<!-- uncomment this if you want the admin servlet -->
<!-- currently the W3C havent settled on a media type for WSDL;
http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
for now we go with the basic 'it's XML' response -->
<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>
4. 布署
(1) WEB-INF下建立文件server-config.wsdd
(2) 文件内容如下:
蓝色部分定义了服务的名称,所用的类 方法.
红色部分定义了服务的方法所用的返回值的自定义类型.
<?xml version="1.0" encoding="gb2312"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="adminPassword" value="admin"/>
<parameter name="enableNamespacePrefixOptimization" value="true"/>
<parameter name="attachments.Directory" value="D:\jakarta-tomcat-5.0.28\webapps\axis\WEB-INF\attachments"/>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="sendXMLDeclaration" value="true"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>
</globalConfiguration>
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<!-- 自定义服务开始 -->
<!-- 单点登陆服务 add by Zhang.P.F -->
<service name="SSOWebservice" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="zpf.SSOWebservice"/>
<operation name="login" returnType="ns:boolean">
<parameter name="loginid" type="ns:String"/>
<parameter name="password" type="ns:String"/>
</operation>
<operation name="getAllDepts" returnType="ns:ArrayOf_tns2_DepartmentInfo">
</operation>
<typeMapping
xmlns:ns="http://interf.kmwhc.zpf.com"
qname="ns:DepartmentInfo"
type="java:zpf.DepartmentInfo"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
/>
<typeMapping
xmlns:ns="urn:SSOWebservice"
qname="ns:ArrayOf_tns2_DepartmentInfo"
type="java:zpf.DepartmentInfo[]"
serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
</service>
<!-- 自定义服务结束 -->
<service name="AdminService" provider="java:MSG">
<parameter name="allowedMethods" value="AdminService"/>
<parameter name="enableRemoteAdmin" value="false"/>
<parameter name="className" value="org.apache.axis.utils.Admin"/>
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion"/>
<parameter name="className" value="org.apache.axis.Version"/>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
<parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
<parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
</transport>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>
</deployment>
文件修改完毕后,重新启动你的应用服务器.
5. 测试
SSOWebservice
Hi there, this is an AXIS service!
Perhaps there will be a form for invoking the service here...
6. 编译生成客户端调用包
我用的ANT进行编译,在配置文件里加入如下代码
<!--登录服务-->
<java2wsdl output="${client.dir}/SSOWebservice.wsdl"
className="zpf.SSOWebservice"
namespace="urn:SSOWebservice"
location="http://localhost:8080/kmwhc/services/SSOWebservice">
<mapping namespace="urn:SSOWebservice"
package="zpf.client" />
</java2wsdl>
<wsdl2java url="${client.dir}/SSOWebservice.wsdl"
output="${client.dir}" deployscope="session" serverSide="yes"
skeletonDeploy="no" noimports="no" verbose="no" testcase="no">
<mapping namespace="urn:SSOWebservice"
package="zpf.client" />
</wsdl2java>
编译,生成wsdl文件和客户端代码.
7调用代码:
zpf.client.SSOWebserviceServiceLocator sv=new zpf.client. SSOWebserviceServiceLocator();
zpf.client.SSOWebservice ssp=sv.getWebCaseservice(new java.net.URL("http://localhost:8080/kmwhc/services/SSOWebservice"));
boolean aa=ssp.login(“admin”,”123”);
10.相关文章
10.1 AXIS详细介绍
Apache Axis 是Apache WebService项目中的子项目,其最初起源于IBM的"SOAP4J",应该属于最早的一批用于构造基于SOAP应用的Framework。 目前Apache Axis已经发展到了第三代,其核心是一个SOAP处理器,用于开发包括客户端,服务器端,SOAP Gateway等各种应用。事实上Apache Axis在了1.0版后,其发行版本还包括了完整的J2EE服务器插件, WSDL支持和生成,TCP/IP监视器等组件,从这个意义上来说Apahce Axis已不仅仅是个SOAP框架了,它包含了除了UDDI外对整个Web Service协议栈(Protocol Stack)的支持。
AXIS研究的时间不长,在下在到的AXIS包中有一个类叫WSDL2Java,从字面意思就能够理解到这个工具是做什么的。既:提供要调用的webservice描述WSDL,然后生成调用的时候需要的JAVA程序,目前为止我也是只研究到这,因为我们在调用另一个公司提供的webservice的时候对方返回的信息就是dataset,我用soap的方法已经没有办法实现了(后来调查是可以实现的,但是相当麻烦),经商议以后决定修改对方的webservice,将返回的dataset强制tostring,然后再返回到JAVA中作处理。虽然解决了问题,但是改动对方的webservice有损webservice的意义,所以就使用了AXIS。从网上查资料的时候查到了WSDL2JAVA这个类。
对于编写基于AXIS方法能够调用.NET的JAVA程序,你必须有一下几个工具:
1、 操作系统
2、 JDK(我使用的是j2sdk1.4.2)
3、 axis.jar
Axis-schema.jar 在 1.3的版本中有这个文件。
commons-discovery.jar
commons-logging.jar
jaxrpc.jar
log4j-1.2.8.jar
name.txt
saaj.jar
wsdl4j.jar
4、 集成开发环境(我的是Eclipse3.1.1)
将axis包中的jar文件存到jdk下面,在windows控制台中进入jdk目录,然后运行
Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost/Add.asmx?wsdl 命令,注意:http://localhost/Add.asmx?wsdl 是你要的文件调用的webservice程序的地址,就是上文说到的那个wsdl文件,如果java环境没有问题的话,wsdl2java就应该将生成的java文件包,存放到jdk主目录下面。你的第一步成功了,生成的文件就能够实现粗略的功能了。
WSDL2Java生成的文件总结如下:
Client-side Bindings:
Sample: java org.apache.axis.wsdl.WSDL2Java AddressBook.wsdl
WSDL 子句
|
生成的Java类
|
为在type区的每个条目
|
一个Java类
|
一个Holder类,如果此type被用作inout/out参数
|
|
为每个portType
|
一个Java接口
|
为每个binding
|
一个Stub类
|
为每个service
|
一个service接口
|
一个service实现(作为定位器)
|
Server-side Bindings:
Sample: java org.apache.axis.wsdl.WSDL2Java --server-side AddressBook.wsdl
WSDL 子句
|
生成的Java类
|
为每个binding
|
一个Skeleton类(若—skeletonDeploy设为true时)
|
一个实现模板类(供用户修改为自己的实现)
|
|
为所有的services
|
一个deploy.wsdd文件
|
一个undeploy.wsdd文件
|
命令参数参考:
Usage:
java org.apache.axis.wsdl.WSDL2Java [options] WSDL-URI
Options:
java org.apache.axis.wsdl.WSDL2Java [options] WSDL-URI
Options:
-h, --help
打印帮助信息后退出
-v, --verbose
打印报告信息
-n, --noImports
只生成直接的WSDL代码文档
-O, --timeout <argument>
超时秒数(默认45秒, -1表示不限定)
-D, --Debug
打印调试信息
-W, --noWrapped
关闭装订(wrapped)文档/文字支持
-s, --server-side
为web service发布服务端绑定
-S, --skeletonDeploy <argument>
在deploy.wsdd中展开纲要(true)或执行(false)。
默认为false。假定server-side.
默认为false。假定server-side.
-N, --NStoPkg <argument>=<value>
命名空间到包的映射
-f, --fileNStoPkg <argument>
命名空间到包的映射文件(默认为NStoPkg.properties)
-p, --package <argument>
用包名称覆盖所有的命名空间到包的映射
-o, --output <argument>
发行文件的输出目录
-d, --deployScope <argument>
增加范围到deploy.xml: Application(应用), Request(请求), Session(会话)
-t, --testCase
为web service发行junit测试用例类
-a, --all
为所有元素生成代码,包括未引用的元素
-T, --typeMappingVersion
指示1.1或1.2版. 默认为1.1版(SOAP 1.1适用JAX-RPC. 1.2标志SOAP 1.1编码.)
-F, --factory <argument>
执行GeneratorFactory接口的用户类名称(扩展Java generation函数)
-i, --nsInclude <namespace>
包含在生成代码中的特定命名范围(默认为所有命名空间,除非用-x选项)
-x, --nsExclude <namespace>
从生成代码中排除的特定命名空间(默认为none,排除直到第一个用-i选项包含的命名空间)
-p, --property <name>=<value>
用户GeneratorFactory的属性名称和值
-H, --helperGen
为meta数据发行分离Helper类
-U, --user <argument>
访问WSDL-URI的用户名
-P, --password <argument>
访问WSDL-URI的密码
-c, --implementationClassName <argument> 用该项作为实现类
假如我要调用的webservice中的laiheng方法,在生成的文件中就有LaihengResponseLaihengResult.Java文件,其中有一块是这样写的:
public LaihengResponseLaihengResult(
org.apache.axis.message.MessageElement [] _any) {
this._any = _any;
}
_any中就有你要的结果了。
写到这里暂时就算写完了吧,其实有好多要写的东西,我这人比较懒,写一篇能够引导新手不走弯路的文章的出发点应该是好的。可是写到这后就没有时间和想法继续写下去了。如果要是看到这篇文章后不明白的地方或者是我写错的地方,请指正。
我的电子邮件是:TTYsonic#gmail.com
10.2 使用Handler来增强Web服务的功能
axis版本是apache axis-bin-1_3,可以到apache网站下载。
10.2.1 环境变量设置
AXIS_HOME
即axis-bin-1_2.zip解压的目录(我的是在 F:\opensource\axis-1_2)
AXIS_LIB
即 %AXIS_HOME%\lib
即axis-bin-1_2.zip解压的目录(我的是在 F:\opensource\axis-1_2)
AXIS_LIB
即 %AXIS_HOME%\lib
10.2.2 导入jar包
将axisa解压缩后,复制lib目录下列jar包到应用目录的lib目录:
saaj.jar
wsdl4j-1.5.1.jar
jaxrpc.jar
commons-logging-1.0.4.jar
commons-discovery-0.2.jar
axis-schema.jar
axis-ant.jar
axis.jar
saaj.jar
wsdl4j-1.5.1.jar
jaxrpc.jar
commons-logging-1.0.4.jar
commons-discovery-0.2.jar
axis-schema.jar
axis-ant.jar
axis.jar
10.2.3 修改web.Xml
将axis需要的servlet复制到应用的web.xml文件里面,注意顺序。重新启动服务,可以访问“/servlet/AxisServlet”试一下,比如:http://10.162.11.70:9080/newsdaoa/servlet/AxisServlet。 详细参见web.xml配置文件。
10.2.4 添加服务
将server-config.wsdd文件复制到发布应用的WEB-INF目录下,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。
如果还没有server-config.wsdd文件,可以先写一个发布描述文件,然后用axis来生成,以后需要发布新的服务,直接往里面添加即可。
比如有一个HelloWorld.class类,里面有sayHello(String msg)方法,想把它发布webservices,先写发布文件deploy.wsdd文件,即SOAP服务发布描述文件deploy.wsdd
http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
如果还没有server-config.wsdd文件,可以先写一个发布描述文件,然后用axis来生成,以后需要发布新的服务,直接往里面添加即可。
比如有一个HelloWorld.class类,里面有sayHello(String msg)方法,想把它发布webservices,先写发布文件deploy.wsdd文件,即SOAP服务发布描述文件deploy.wsdd
http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
进入dos窗口,执行下列命令:
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd 即可生成server-config.wsdd文件。
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd 即可生成server-config.wsdd文件。
如果想发布新的服务,直接往server-config.wsdd里面添加service描述,比如想把知识管理模块导入知识功能发布成webservices,对应的程序文件是com.lc.v3.ecp.km.inteface.KmDelegate.java,需要发布的方法是importKm(String kmXmlStr),将此文件编译成class后,放到发布系统的相应目录下,往server-config.wsdd添加下列描述:
重新启动服务,一个新的webservices就发布成功了,如果系统发布地址是http://10.162.11.70:9080/newsdaoa,
10.2.5 给服务添加Handler
J2EE Web 服务中的Handler技术特点非常像Servlet技术中的Filter。我们知道,在Servlet中,当一个HTTP到达服务端时,往往要经过多个Filter对请求进行过滤,然后才到达提供服务的Servlet,这些Filter的功能往往是对请求进行统一编码,对用户进行认证,把用户的访问写入系统日志等。相应的,Web服务中的Handler通常也提供一下的功能:
对客户端进行认证、授权;
把用户的访问写入系统日志;
对请求的SOAP消息进行加密,解密;
为Web Services对象做缓存。
对客户端进行认证、授权;
把用户的访问写入系统日志;
对请求的SOAP消息进行加密,解密;
为Web Services对象做缓存。
SOAP消息Handler能够访问代表RPC请求或者响应的SOAP消息。在JAX-RPC技术中,SOAP消息Handler可以部署在服务端,也可以在客户端使用。
至于如何开发handler,可以到网上去搜索陈亚强写的《使用Handler来增强Web服务的功能》,人家写的比较好,我就不在这废话了。
比如服务必须有用户名和密码才能访问,可以添加axis自带的检验认证handler,用户名和密码存放在\WEB-INF下的users.lst文件中。handler分别是:
//访问者必须提供用户名和密码,只要用户名和密码正确即可
org.apache.axis.handlers.SimpleAuthenticationHandler
//访问者必须提供指定的用户名和密码,用户名和密码正确即可
//在services中用allowedRoles属性指定访问的用户名
org.apache.axis.handlers.SimpleAuthorizationHandler
至于如何开发handler,可以到网上去搜索陈亚强写的《使用Handler来增强Web服务的功能》,人家写的比较好,我就不在这废话了。
比如服务必须有用户名和密码才能访问,可以添加axis自带的检验认证handler,用户名和密码存放在\WEB-INF下的users.lst文件中。handler分别是:
//访问者必须提供用户名和密码,只要用户名和密码正确即可
org.apache.axis.handlers.SimpleAuthenticationHandler
//访问者必须提供指定的用户名和密码,用户名和密码正确即可
//在services中用allowedRoles属性指定访问的用户名
org.apache.axis.handlers.SimpleAuthorizationHandler
如果想给上面的ImportKm服务添加用户校验,并且只允许用户是pubnet,密码是123456的用户访问,首先往users.lst添加用户名和密码,格式是:
pubnet 123456
user1 pass1
user2
user3 pass3
pubnet 123456
user1 pass1
user2
user3 pass3
11. 常见问题和解答
1.通过build.xml文件,根据java文件来生成wsdl文件(即:java2wsdl)生成的文件中,相关的参数名称和java文件中的webservice函数的参数名称不对应,但是,可以使用,如何解决?
答: 通过试验,可能是axis本身的一个bug。但是,如果通过修改server-config.wsdd文件,把相关的webservice函数添加到该文件中,然后通过启动服务,来获得wsdl文件,参数名称都和java类中webservice函数参数相互对应。建议,采用修改server-config.wsdd文件。
2.启动axis本身自带的axis server时,总是产生警告:Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled?
答:可以添加两个jar文件:mailapi_1_3_1.jar, activation.jar 。详细参见:
http://www.cppblog.com/wform/archive/2006/04/27/mail_activation_jar.html这个是可以忽略的。不过以后构建web services都要用到的,还是添加上的好。
3.青牛和97营业系统交互的webservice的部署方式?
答:相同的一个应用,但是青牛和97的IP地址是不同的。
青牛的访问地址: http://134.96.71.13:8080/axis/
97的访问地址:http:// 134.96.4.3:8080/axis
12 .参考资源
1.Axis官方网站的帮助文档 参见axis官方网站。http://ws.apache.org/
2.网络相关的文档
3. http://134.96.71.13:8080/axis/ 青牛和97营业系统的webservice部署地址。
4.Spring+Axis2的开发和使用指南。
13 .总结和展望
1.这是个详细的版本。以后发布一个简单版,可以通过短短的100多个字,可以完成全部的操作。
2.可以采用axis2,新的架构,更好的文档。详细axis官方网站。
感谢网上的相关资源。
14.附录
14.1 测试webservice用例代码
在zj114boss_new、dxmp工程中,有源代码可以参照。很好的方式。
/**
*
* @throws RemoteException
* @author zhanglelei
* @date 2006-11-23 16:43:56
*/
public void testQnSendMail2() throws RemoteException {
String soapAddress = "http://134.96.71.142/QnInterface/SendMsgService.asmx";
try {
URL endpoint = new URL(soapAddress);
// Create proxy class
SendMsgServiceLocator sendMsgServiceLocator = new SendMsgServiceLocator();
// Get the implementation class of the webservice
SendMsgServiceSoapStub sendMsgServiceSoapStub = (SendMsgServiceSoapStub)sendMsgServiceLocator.getSendMsgServiceSoap(endpoint);
// Finish actual action
int retVal = sendMsgServiceSoapStub.QnSendMail("zhanglelei@channelsoft.com", "1", "1", "1");
System.out.println("动态调用发送邮件接口返回值为:" + retVal);
} catch (ServiceException e) {
e.printStackTrace();
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
}
发表评论
-
Tomcat6+axis1.4 Web服务发布及压力测试
2011-01-07 15:53 32771.环境配置 1.1安装jdk1.6.0 1.2安装tom ... -
webService(web服务)自动发布工具-源代码
2008-11-12 15:11 3308这个小工具特别适合对web服务相关知识了解较少,又急需上web ... -
web服务自动发布工具初步完成
2008-10-02 21:10 2222web服务自动发布工具简单介绍: 1.整个过程由web程序 ... -
想做个webservice自动部署工具,欢迎大家提点需求或意见
2008-09-24 16:14 2306最近遇到了一个实际的问题:怎样让一个不了解webservice ... -
使用axis开发webservice
2008-09-23 16:42 47301 介绍本文并不是想介绍Web服务的原理、系统架构等,我们假设 ... -
webservice开发和使用指南5
2008-09-22 17:18 181114.2 build.xml脚本代码 在这里增加了 ... -
Webservice开发和使用指南3
2008-09-22 17:14 23638.Axis集成Resin或其它应用服务器 8.1 ... -
Webservice开发和使用指南2
2008-09-22 17:13 43585.2 测试webservice接口工具 1. ... -
Webservice开发和使用指南1
2008-09-22 17:06 28101 .修改历史 Version Change ... -
webservice开源引擎的比较:Axis和CXF的比较
2008-09-22 15:09 5060在SOA领域,我们认为Web ... -
实战webservice安全策略
2008-07-09 12:51 8357前些日子公司的应用要 ... -
.net客户端调用java服务端,通讯数据加密解密思路及过程
2008-03-08 10:37 3993目前系统客户端用.net实现,java服务端采用了webser ... -
net的客户端调用java的web服务,服务端怎样保持session以及通讯的安全问题
2008-03-05 12:18 2232net的客户端调用java的web服务,在客户端怎样保持ses ...
相关推荐
WebService开发和使用指南 在IT领域,WebService是一种基于开放标准的、平台和语言无关的通信协议,用于在不同系统之间交换数据。它通过XML(eXtensible Markup Language)进行数据编码,使用SOAP(Simple Object ...
【WebService开发指南】这篇文章主要介绍了基于Java的Axis2框架如何进行WebService的开发。Axis2是Apache组织提供的一个用于构建和部署Web服务的高级框架,它作为Axis1的升级版,提供了更多的特性和优化。 首先,...
1. 定义服务接口:使用Java注解(如@WebService)来声明服务接口,包括服务端点接口(SEI)和消息处理器接口。 2. 实现服务:为接口提供具体实现,处理客户端请求。 3. 创建WSDL:JAX-WS自动生成WSDL文件,描述服务...
EAS-WebService开发指南 本文档旨在指导开发者如何使用EAS-WebService开发指南...通过本文档,开发者可以了解如何使用EAS-WebService开发指南来构建Web服务,并且了解了WebService的开发流程和客户端开发的注意事项。
WebService 开发手册 WebService开发指南
在金蝶EAS V7.5的Web Service开发指南中,详细介绍了以上各个步骤,包括具体的API使用示例、配置示例和常见问题解答。开发者应仔细阅读并参照指南实践,以充分利用金蝶EAS的Web Service功能,实现企业系统的高效集成...
BOSWebService开发指南[收集].pdf
"C++环境下使用gsoap开发...本文为读者提供了一个全面的C++环境下使用gsoap开发WebService接口的操作指南,从WebService的概念和特点到gsoap的使用流程和选项,希望能够帮助读者更好地理解和掌握WebService开发技术。
【标题】"Web服务开发指南"是一本专为IT专业人士准备的深度教程,全面解析了Web服务(Web Service)的概念、技术栈以及实际开发过程。Web服务是一种基于互联网的、平台独立的通信协议,用于软件之间的交互,允许不同...
WebService开发指南.rar WebService开发指南.rar
### WebService之CXF开发指南 #### 一、概述 WebService技术已经成为企业级应用中不可或缺的一部分,它使得不同系统之间能够以标准化的方式进行交互。在众多WebService框架中,Apache CXF因其灵活、强大的功能和...
### WebService开发过程详解 #### 一、概述 本文将详细介绍如何使用Eclipse集成开发环境(IDE)结合Tomcat服务器及Axis框架来开发一个简单的WebService应用。对于初学者来说,这是一个很好的入门指南,通过本教程...
EAS BOS开发指南中的WebService开发涉及多个关键知识点,主要包括: 1. BOSWebService的原理与功能 - Webservice是基于SOAP、WSDL和UDDI技术,通过XML格式的数据交换实现不同平台和应用系统间的协同工作。 - ...
总而言之,Axis2_WebService_开发指南涵盖了从基础准备到实例演示,再到高级特性的使用,为开发者提供了一套完整的Axis2 WebService开发教程。通过这个指南,开发者可以快速上手Axis2的使用,以及深入理解和应用其在...
【WebService XFire开发指南】 在IT行业中,WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的协议,允许不同系统之间的应用程序通过互联网进行通信。它提供了一种松散耦合的方式,使得分布式系统可以共享数据...
【WebService开发指南 源码】是一份详细指导如何使用AXIS进行WebService开发的源代码集合,主要聚焦在AXIS工具的使用上。AXIS是一个流行的开源Java库,用于实现Web Services,它允许开发者轻松地创建和部署SOAP...
WebService开发手册是指使用Web Service技术开发应用程序的指南。Web Service是一种基于XML的,平台无关的,跨语言的分布式应用程序的架构。它允许不同的应用程序之间相互通信和交换数据,从而实现业务流程的集成和...
1、发布成WebService的方法,其方法参数和返回值类型必须是下列列表中的类型,否则发布时看不见方法。是否可以添加异常未尝试。 2、早期的BOS Studio发布元数据是有BUG的,发布以后,元数据和配置文件并没有同步拷贝...