javawebservice配置文件|java如何调用webservice接口

『壹』 java如何调用webservice接口

Java通过WSDL文件来调用直接调用模式如下:

import java.util.Date;

import java.text.DateFormat;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import javax.xml.namespace.QName;

import java.lang.Integer;

import javax.xml.rpc.ParameterMode;

public class caClient {

public static void main(String[] args) {

try {

String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";

//直接引用远程的wsdl文件

//以下都是套路

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(endpoint);

call.setOperationName("addUser");//WSDL里面描述的接口名称

call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,

javax.xml.rpc.ParameterMode.IN);//接口的参数

call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型

String temp = "测试人员";

String result = (String)call.invoke(new Object[]{temp});

//给方法传递参数,并且调用方法

System.out.println("result is "+result);

}

catch (Exception e) {

System.err.println(e.toString());

}

}

}

『贰』 返回InputStream对象java webservice 配置文件怎么配

InputStream 。。。 这种资源化的对象是非序列化的 你让它返回什么呢 它只在本地有一个引用 指向本地系统资源 如果在远端请求。。。那能得到什么呢分布式服务 能取到的一定是可序列化的对象

『叁』 java怎样发布webservice接口详细步骤

用netbeans建项目的时候,选择webservice就可以了。//你用main函数能启动内一个新端口?既然用main函数能行,就把main函数功能,写到一容个类的构造函数中,把这个类配置到spring配置文件中,spring启动的时候自然会装载类,装载类的时候自然就能执行到这部分代码了。

『肆』 eclipse 怎样配置java webservice

用eclipse创建一个WebService应用非常方便,步骤如下:1.安装WebService插件。2.安装一个web服务器。我这里用的是Tomcat。3.创建一个Webservice服务。在eclipse中创建一个动态的web工程。New->Project->Dynamic Web Project。创建完成后,写一个service类,比如:public class LogonService {public int checkUserRight(String userId, String password) {//假设进行数据库操作if (password != null && "fred".equals(userId)) {return 1;}return 0;}}public int checkUserRight(String userId, String password)就是我们要调用的远程方法。4.在这个类的文件名上点击右键,选择”Web Services"->“Create Web Service”,就会出现下面的界面:要选上TestClient(下面的那个图片上),这样创建Service的同时,会创建一个Service的test工程。5.点击next,选择方法名称,6.点击"next",点击“Start Server”,就会启动Tomcat,并将工程部署上去。7.如果点击“Launch”会打开刚才创建的WebService的测试界面,可以进行测试。8.这时候,会出现测试创建代理类的界面,代理类会创建在自动生成的测试工程中,也就是LogonWebServiceTest工程中。9.点击“next”,会自动生成代理类,并出现选择测试方法的界面。你可以选择相应的方法,这样eclipse会生成相应的页面。10.点击"Finish"就可以了,这时,会自动启动一个页面点击左边相应的方法,就可以进行测试了。注:遇到的问题执行时报错:D:\MyDrivers\software\apache-tomcat-7.0.50\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform解决方法:把tomcat\bin 目录下的tcnative-1.dll复制到jdk\bin目录下查看Tomcat是多少位:cmd—>cd 目录下—>catalina version 就可以查看到查看JDK是多少位:cmd—>java version 下面有显示就是64位,没有就是32位的

『伍』 java 用cxf发布webservice的配置文件

参考 1.“爸,如果你不是要去参加一个夏威夷草群聚会的话,请把现在你脖子上那条春花烂漫的领带换掉,好么?”

『陆』 如何在java web 里面使用webservice技术

一、利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务 1.首先建立一个Web services EndPoint:package Hello; import javax.jws.WebService; import javax.jws.WebMethod; import javax.xml.ws.Endpoint; @WebService public class Hello { @WebMethod public String hello(String name) { return "Hello, " + name + "\n"; } public static void main(String[] args) { // create and publish an endpoint Hello hello = new Hello(); Endpoint endpoint = Endpoint.publish("http://localhost:8080/hello", hello); } } 2.使用 apt 编译 Hello.java(例:apt -d [存放编译后的文件目录] Hello.java ) ,会生成 jaws目录 3.使用java Hello.Hello运行,然后将浏览器指向http://localhost:8080/hello?wsdl就会出现下列显示 4.使用wsimport 生成客户端 使用如下:wsimport -p . -keep http://localhost:8080/hello?wsdl 这时,会在当前目录中生成如下文件: 5.客户端程序: 1class HelloClient{ 2public static void main(String args[]) { 3 HelloService service = new HelloService(); 4 Hello helloProxy = service.getHelloPort(); 5 String hello = helloProxy.hello("你好"); 6 System.out.println(hello); 7 } 8}9 以上方法还稍显繁琐,还有更加简单的方法 二、使用xfire,我这里使用的是myeclipse集成的xfire进行测试的 利用xfire开发WebService,可以有三种方法: 1一种是从javabean 中生成; 2 一种是从wsdl文件中生成; 3 还有一种是自己建立webservice 步骤如下: 用myeclipse建立webservice工程,目录结构如下: 首先建立webservice接口, 代码如下: 1package com.myeclipse.wsExample;2//Generated by MyEclipse34public interface IHelloWorldService {5 6 public String example(String message);7 8} 接着实现这个借口: 1package com.myeclipse.wsExample; 2//Generated by MyEclipse 3 4public class HelloWorldServiceImpl implements IHelloWorldService { 5 6 public String example(String message) { 7 return message; 8 } 9 10} 修改service.xml 文件,加入以下代码: 1<service> 2 <name>HelloWorldService</name> 3 <serviceClass> 4 com.myeclipse.wsExample.IHelloWorldService 5 </serviceClass> 6 <implementationClass> 7 com.myeclipse.wsExample.HelloWorldServiceImpl 8 </implementationClass> 9 <style>wrapped</style>10 <use>literal</use>11 <scope>application</scope>12 </service> 把整个项目部署到tomcat服务器中 ,打开浏览器,输入http://localhost:8989/HelloWorld/services/HelloWorldService?wsdl,可以看到如下: 然后再展开HelloWorldService后面的wsdl可以看到: 客户端实现如下: 1package com.myeclipse.wsExample.client; 2 3import java.net.MalformedURLException; 4import java.net.URL; 5 6import org.codehaus.xfire.XFireFactory; 7import org.codehaus.xfire.client.Client; 8import org.codehaus.xfire.client.XFireProxyFactory; 9import org.codehaus.xfire.service.Service;10import org.codehaus.xfire.service.binding.ObjectServiceFactory;1112import com.myeclipse.wsExample.IHelloWorldService;1314public class HelloWorldClient {15public static void main(String[] args) throws MalformedURLException, Exception {16// TODO Auto-generated method stub17Service s=new ObjectServiceFactory().create(IHelloWorldService.class);18XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());19String url="http://localhost:8989/HelloWorld/services/HelloWorldService";2021 try22 { 23 24 IHelloWorldService hs=(IHelloWorldService) xf.create(s,url);25 String st=hs.example("zhangjin");26 System.out.print(st);27 }28 catch(Exception e)29 {30 e.printStackTrace();31 }32 }3334}35 这里再说点题外话,有时候我们知道一个wsdl地址,比如想用java客户端引用.net 做得webservice,使用myeclipse引用,但是却出现无法通过验证的错误,这时我们可以直接在类中引用,步骤如下: 1public static void main(String[] args) throws MalformedURLException, Exception { 2 // TODO Auto-generated method stub 3 Service s=new ObjectServiceFactory().create(IHelloWorldService.class); 4 XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire()); 5 6 7//远程调用.net开发的webservice 8Client c=new Client(new URL("http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl")); 9 Object[] o=c.invoke("qqCheckOnline", new String[]{"531086641","591284436"});10 11//调用.net本机开发的webservice12Client c1=new Client(new URL("http://localhost/zj/Service.asmx?wsdl"));13Object[] o1=c1.invoke("HelloWorld",new String[]{});14 15}

『柒』 java + webservice

通常与web服务的通讯方式为:以POST方式建立与服务端URL的HTTP连接,然后发送指定的XML串。服务端也会以XML方式返回响应。XML串类似:<soapenv:Envelope> <soapenv:Body> <request>….</request> </soapenv:Body></soapenv:Envelope>其中,WSDL中描述了上述通讯协议中大部分内容:网络协议由wsdl中的binding描述,通常为http.URL由wsdl中的service/port/address指定。XML的Body之内的格式由wsdl的message与types指定。理论上这些可以通过程序来完成,而不需要stub类。但是由于很多web服务的输入输出格式很复杂,靠程序来实现难度很大。我认为你的多个wsdl应该输入输出格式一致的,仅仅是URL的不同而已(不然程序也没法知道朝哪儿赋值)。因此,你可以仅利用一套固定的stub,只需在调用时区分不同的URL即可(axis里可用setEndpoint,cxf似乎是在初始化service对象时指定的)。

『捌』 如何部署java webservice

1、 编写一个Java Class,里面写一个静态函数sayHello(String name),这个sayHello就是我们要编写的用来做接口的webservice函数。(注:一定要写成静态函数,Axis只会把静态函数转换成WebService) 程序代码(HelloBeauty.java)如下:public class HelloBeauty{public static void main(String[] args){}public static String sayHello(String name){return name + ",You are a beauty girl . ";}}2、 下载axis-1_1.zip,解压,并部署成Web站点。 Axis-1.1目录结构如下: Axis-1.1 —–doc —–lib —–samples —–webapps —–xmls —–LICENSE —–README —–release-notes.html 在web服务器上新增一虚拟目录(这里暂把虚拟目录名设为Axis,可以根据情况自行更改),虚拟目录的根节点设置到Axis-1.1目录。 3、 部署 把我们前面编写的HelloBeauty.java拷贝到Axis-1.1/webapps 目录下,并且把文件后缀改成jws,即HelloBeauty.jws. 4、 访问 打开IE,输入http://Web服务器地址/axis/HelloBeauty.jws 会出现经过Axis处理后的页面,页面内容如下。 There is a Web Service here Click to see the WSDL 看到上面的页面后即代表你的WebService部署成功了。

『玖』 java Webservice都有哪几种方式啊,哪种方式比较好啊

webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录。1.Axis2Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟。这里主要介绍Axis+eclipse开发webservice,当然不用eclipse也可以开发和发布webservice,只是用eclipse会比较方便。 (1)下载eclipse的Java EE版本(2)下载axis2(3)下载eclipse的axis2插件Axis2_Codegen_WizardAxis2_Service_Archiver推荐使用1.3的版本 (4)eclipse安装axis2插件1)在任意目录下新建一个Axis2文件夹,在该文件夹下新建eclipse目录,在eclipse目录中新建plugins目录和features目录,例如:D:\programSoftware\eclipse-SVN\Axis2\eclipse;2)把下载的axis2插件解压,并把解压的文件放到新建的eclipse的plugins目录下;3)在%eclipse_home%的目录下新建links目录,并在links目录下新建axis2.link文件,内容为:path=D:\programSoftware\eclipse-SVN\Axis2;4)重启eclipse,点击·file-new-other,如果看到Axis2 Wizards,则表明插件安装成功。 (5)安装axis2(6)使用eclipse新建web工程,创建一个普通java类,至少包含一个方法。 (7)发布webservice1)点击eclipse的File-New-other,打开Axis2 Wizards,选择Axis2 Service Archiver,然后Next;2)选择Class File Location,也就是类文件存放路径,注意:只选到classes目录,不要包括包文件夹,然后Next;3)选择Skip WSDL,然后Next4)一路Next到Select the Service XML file to be included in the Service archive,勾选Generate theservice xml automatically;5)Service Name-填写你的service名称,Class Name-填写类名称,要包括包名,然后点击load,然后点击Finish,这时webservice就发布成功了;6)然后到%TOMCAT_HOME%/webapps/axis2/WEB-INF/services 看看是否多了一个.aar的文件;注意:以上的方式是发布到axis2.war包中,你也可以把生成.aar文件到你的实际应用中,同时,你也可以使用eclipse的create webservice功能发布你的webservice,选择axis2生成你的webservice,这样webservice就会部署到你的应用中了。 2.Apche CXFCXF开发webservice也是比较方便和简单的,它和spring的集成可以说是非常地好。举一个CXF开发webservice的例子吧。1)在eclipse中新建一个web工程,导入依赖包,如图: 2)编写一个接口,如:注意:CXF开发的webservice,接口中的方法的参数一定要以这种方式,否则客户端调用的时候CXF服务端会接收不到参数的值,name:参数名称,可不写(建议写上),targetNamespace:命名空间,一定要填写上,默认是包名反过来的顺序,mode:参数类型,IN表示输入。3)编写一个实现类,实现接口的方法;4)和spring的集成,编写一个bean文件,如:cxf-beans.xml,内容如下: Cxf-beans.xml代码 <?xml version="1.0" encoding="UTF-8" ?> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <jaxws:endpoint id="vote" implementor="com.zcl.cxf.service.VoteImpl" address="/Vote" /> </beans> 这个文件比较容易理解,就不解释了。5)配置CXFServlet在web.xml文件中配置CXFServlet,加载cxf-beans.xml文件,内容如下: Web.xml代码 id="WebApp_ID" version="2.5"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>WEB-INF/cxf-beans.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>cxf</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>cxf</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app> 把工程部署到中间件,如tomcat,就可以访问该webservice了。 3.JDK开发webservice1)编写一个Java类,如下: Jdkwebservice.java代码 package demo; import javax.jws.WebParam; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class JdkWebService { return "Just do it," + value + "!"; } public static void main(String[] args) { } } 2)运行该java类,在浏览器上就可以访问该webservice了。注意:开发web工程的时候,这种方法不太友好。我们可以编写一个servlet类,在servlet类的初始化方法中发布webservice,这样我们的中间件服务器启动的时候就会帮我们自动webservice了。 4) xfire开发WebService的框架不少,每个框架都有各自的有点,最近我用xfire练习开发WebService,下面是开发WebService的小例子,希望对入门的人有些小帮助 1.新建一个java web project命名为TestWebService,将xfire相关的jar包添加到lib目录中,写接口类和实现类 Java代码 package com.lamp.service; public interface MessageService { public String getName(String name); } [java] view plainprint?package com.lamp.service; public interface MessageService { public String getName(String name); } 实现类 Java代码 package com.lamp.service.impl; import com.lamp.service.MessageService; public class MessageServiceImpl implements MessageService { public String getName(String name) { return "hellow " + name + ", welcome to WebService world"; } } [java] view plainprint?package com.lamp.service.impl; import com.lamp.service.MessageService; public class MessageServiceImpl implements MessageService { public String getName(String name) { return "hellow " + name + ", welcome to WebService world"; } } 在src目录下新建文件夹META-INF,然后再在其下新建文件夹xfire,在xfire目录下新建配置文件services.xml Xml代码 <?xml version="1.0" encoding="UTF-8"?> <service> <name>MessageService</name> <serviceClass>com.lamp.service.MessageService</serviceClass> <implementationClass>com.lamp.service.impl.MessageServiceImpl</implementationClass> </service> </beans> [xml] view plainprint?<?xml version="1.0" encoding="UTF-8"?> <service> <name>MessageService</name> <serviceClass>com.lamp.service.MessageService</serviceClass> <implementationClass>com.lamp.service.impl.MessageServiceImpl</implementationClass> </service> </beans> 最后在web.xml中配置xfire的servlet Xml代码 <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> </servlet-class> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> [xml] view plainprint?<servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> </servlet-class> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/servlet/XFireServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> 这样服务器端开发完毕,现在开始客户端的开发 新建一个java project也将xfire相关的jar引入,我用ant在客户端生成代理对象,在项目路径下新建build.xml,代码为 Xml代码 <?xml version="1.0" encoding="UTF-8"?> <project name="WebService" basedir="." default="gen-webservice"> <property file="build.properties"> </property> <path id="project-classpath"> <fileset dir="${lib.dir}"> <include name="**/*.jar" /> </fileset> </path> <target name="gen-webservice"> <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="project-classpath" /> <wsgen outputDirectory="${src.dir}" wsdl="${wsdl.dir}" package="com.lamp.ws.client" overwrite="true"/> </target> </project> [xml] view plainprint?<?xml version="1.0" encoding="UTF-8"?> <project name="WebService" basedir="." default="gen-webservice"> <property file="build.properties"> </property> <path id="project-classpath"> <fileset dir="${lib.dir}"> <include name="**/*.jar" /> </fileset> </path> <target name="gen-webservice"> <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="project-classpath" /> <wsgen outputDirectory="${src.dir}" wsdl="${wsdl.dir}" package="com.lamp.ws.client" overwrite="true"/> </target> </project>

『拾』 怎样新建一个Java的Web Service

服务器端的操作:1. 创建一个WebService项目。(不需要是Java EE 5.0)2. 创建包与接口以及实现类。3. 加上WebService的包4. 编辑配置文件5. 部署后在浏览器中测试:http localhost:8080/testWebService/services, 格式是固定的,中间换成项目名即可!至此,服务器端已完成!以下做的是客户端的调用。1. 创建客户端项目2.将服务器端的包复制到客户端(注意,实现类要去掉)3. 加入WebService包4. 在Next时, 注意将红框中的勾打上。6. 在包中创建一个类测试调用外部的WebService是否成功!(注意取地址时应加上webservice的名称)package com.yenange.service;import java.net.MalformedURLException;import org.codehaus.xfire.XFireFactory;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.binding.ObjectServiceFactory;public class TestWS {public static void main(String[] args) {//1.取得WebService的路径String url="http /localhost:8080/testWebService/services/testWebService";//2.创建服务Service service=new ObjectServiceFactory().create(IMyWebService.class);//3.创建服务代理XFireProxyFactory factory=new XFireProxyFactory(XFireFactory.newInstance().getXFire());//4.调用外部的WebService, 建立对象. 再测试其方法try {IMyWebService obj=(IMyWebService)factory.create(service,url);System.out.println(obj.HelloWorld("leaf"));} catch (MalformedURLException e) {e.printStackTrace();}}}至此,java的WebService调用完成!


赞 (0)