分享
 
 
 

Sun ONE Application Server 开发者指南(16)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

配置文件

Wscompile工具读取配置文件,其中包含了描述web服务的信息。配置文件的基本结构如下:

<?xml version="1.0" encoding="UTF-8"?>

<configuration

xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">

<service> or <wsdl> or <modelfile>

</configuration>

如果在配置文件中使用<service>元素,wscompile工具会读取描述服务的RMI接口并生成WSDL文件。

如果在配置文件中使用< wsdl >元素,wscompile工具会读取服务的WSDL文件并生成服务的RMI接口。

如果配置文件中包含了一个<service>或 <wsdl> 元素,wscompile工具会生成一个模型文件,它包含了描述服务的内部数据结构。如果已经按照这种方式生成了一个模型文件,那么下一次运行wscompile工具的时候可以重用它。

关于用于创建配置文件的XML schema的信息,请参见"XML Schema定义"

含有RMI接口的配置文件

<?xml version="1.0" encoding="UTF-8"?>

<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">

<service name="[1]"

targetNamespace="[2]"

typeNamespace="[3]">

packageName="[4]">

<interface name="[5]"

servantName="[6]"

soapAction="[7]"

soapActionBase="[8]"/>

<typeMappingRegistry> [9] </typeMappingRegistry>

</service>

</configuration>

配置文件含有以下Web服务属性:

servicename -该属性用来生成一个被基于servlet的JAX-RPC运行时使用的属性文件,目的是分发请求到tie-和-servant结合处。

targetNamespace -该属性为生成的WSDL文件指定目标命名空间。

typeNamespace - 该属性为生成的WSDL文件的schema部分指定目标命名空间。

packageName -为生成的Java类指定包名称。例如,从javax.xml.rpc.Service扩展的服务接口。

interface name -指定完全符合规范的Java接口名称。

servantName -指定完全符合规范的伺服类名称。

soapAction -为相应端口所有操作指定的名为SOAPAction的字符串。这是一个可选项。

soapActionBase - 为相应端口所有操作的SOAPAction字符串指定的前缀。

typeMappingRegistry -指定类型映射信息。

注意

一个基本servlet类com.sun.xml.rpc.server.http.JAXRPCServlet被应用到所有的JAX-RPC终端。

包含WSDL文档的配置文件

<?xml version="1.0" encoding="UTF-8"?>

<configuration xmlns="http://java.sun.com/jax-rpc-ri/xrpcc-config">

<wsdl location="[1]"

packageName="[2]">

<typeMappingRegistry>[3] </typeMappingRegistry>

</wsdl>

</configuration>

包含WSDL文档的配置文件具有以下属性:

wsdl location – 指向一个WSDL文件的URL

packageName – 为生成的类/接口指定一个完全符合规范的程序包名称。

typeMappingRegistry –确定映射信息的类型

wsdeploy 工具

wsdeploy工具为服务生成可部署的WAR文件。该工具把一个WAR 文件作为服务的输入。

Wsdeploy命令的语法如下:

wsdeploy [options] war file

wsdeploy命令选项

下表列出了可以和wsdeploy命令一起使用的选项。第一列给出选项,第二列对其进行了描述。

wsdeploy工具选项

选项

描述

-classpath<classpath_string>

指定输入类文件的路径

cp<classpath_string>

同classpath

-tmp<directory_name>

指定临时目录的路径

-o<output war file>

指定生成的WAR文件将要保存的路径。该选项是必须指定的。

-keep

编译完成之后保留生成的.java文件

-verbose

编译器执行后输出消息

-version

打印版本信息

war file-一般来说,你使用一个部署工具或是asant war任务来创建WAR文件。下面是一个简单的WAR文件的内容:

META-INF/MANIFEST.MF

WEB-INF/classes/hello/HelloIF.class

WEB-INF/classes/hello/HelloImpl.class

WEB-INF/jaxrpc-ri.xml

WEB-INF/web.xml

在例子中,HelloIF是服务的RMI接口,HelloImpl是实现接口的类。web.xml文件是web组件的配置描述文件。

Wsdeploy工具检查配置描述文件web.xml和jaxrpc-ri.xml,从而生成WAR文件。如果配置描述文件指定了一个模型文件,该模型文件的信息被用来生成WAR文件。如果配置描述文件没有指定一个模型文件,wsdeploy会生成一个模型。关于用于创建模型文件的XML schema的信息,请参见"XML Schema定义"

在内部,wsdeploy工具使用-gen:server选项运行了wscompile工具。就是说,该工具生成了服务器端的附件,例如tie。该工具还能够生成服务终端定义,或是WSDL文件。

jaxrpc-ri.xml文件

jaxrpc-ri.xml文件是JAX-RPC实现的特定配置文件。wsdeploy工具读取这个配置文件。下面的代码列出了一个简单的HelloWorld服务的jaxrpc-ri.xml文件内容。

<?xml version="1.0" encoding="UTF-8"?>

<webServices

xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/dd"

version="1.0

targetNamespaceBase="http://com.test/wsdl"

typeNamespaceBase="http://com.test/types"

urlPatternBase="/ws">

<endpoint

name="HelloWorld"

displayName="Hello Service"

description="A simple web service"

interface="samples.webservices.jaxrpc.dynamic.HelloIF"

implementation="samples.webservices.jaxrpc.dynamic.HelloImpl"/

<endpointMapping

endpointName="HelloWorld"

urlPattern="/dynamic"/>

</webServices>>

<webServices> 元素必须包含一个或者多个<endpoint>元素。注意,在这个例子中<endpoint>的接口和实现属性指定了服务的接口和实现类。<endpointMapping>绑定服务接口到一个代表URL路径的元素,该URL符合urlPatternBase。关于创建运行时描述文件的XML schema的信息,请参见"XML Schema定义"

命名空间映射

本节的阅读对象是那些熟悉WSDL、 SOAP、和JAX-RPC规范的开发人员。

这里有一个schema类型名称的例子:

schemaType="ns1:SampleType"

xmlns:ns1="http://echoservice.org/types"

当从schema类型生成Java类型的时候,wscompile从schema类型名称的本地部分获取类名。

为了指定生成的Java类的包名称,你需要在schema类型命名空间和包名称之间定义一个映射。可以通过添加<namespaceMappingRegistry>元素到config.xml文件来定义这种映射。例如:

<service>

...

<namespaceMappingRegistry>

<namespaceMapping

namespace="http://echoservice.org/types" packageName="echoservice.org.types"/>

</namespaceMappingRegistry>

...

</service>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有