发布WebService 1.1

webservice1.1是基于jdk发布的

 1 package cn.itcast.service01;
 2
 3 import javax.jws.WebService;
 4 import javax.xml.ws.Endpoint;
 5
 6 @WebService
 7 public class HelloService {
 8
 9     public String sayHello(String name)
10     {
11         System.out.println("say hello called");
12         return "hello " +name;
13      }
14     //main方法不能发布的, 发布的方法不能是静态 的
15     public static void main(String[] args)
16     {
17         //启动一个新线程   地址  内容
18         Endpoint.publish("http://192.168.151.42:5678/hello", new HelloService());
19         System.out.println("herer ");
20     }
21 }

测试:

一、用户访问http://192.168.151.42:5678/hello?wsdl 然后

cmd下输入  wsimport -s . http://192.168.151.42:5678/hello?wsdl

然后把代码下下来 去掉其中的*.class

复制代码到项目测试

在http://192.168.151.42:5678/hello?wsdl中采用从底向上的模式看

 1 package cn.itcast.testService;
 2
 3 import cn.itcast.service01.HelloService;
 4 import cn.itcast.service01.HelloServiceService;
 5
 6 public class AppTest {
 7
 8     public static void main(String[] args)
 9     {
10         /**
11          *  wsdl 地址 service name="HelloServiceService"
12          */
13         HelloServiceService  service=new HelloServiceService();
14
15         HelloService soap=service.getHelloServicePort();
16         String str=soap.sayHello("this is sss ");
17         System.out.println(str);
18     }
19 }

这样 就能实现 在客户端访问 服务端的WebService

还有一种客户端写法实现访问服务端, 这种方法其实和第一种本质是一样的,第一种方法采用继承接口的形式,客户端拷贝多个文件。

第二种方法客户端单单拷贝接口,因为继承这个接口的构造方法是protected,所以可以用第二种方法,代理对象

二 利用生成的接口 和jdk提供的 Service 等类 实现访问

服务器端添加方法

1     public String sayHello2(String name,int n)
2     {
3         System.out.println("say hello called       --------------------"+n);
4         return "hello " +name;
5     }

然后 wsimport -s -p cn.itcast.hello  http://192.168.151.42:5678/hello?wsdl

然后单单拷贝生成的接口 HelloService

然后以下代码

 1 package cn.itcast.testService;
 2
 3 import java.net.MalformedURLException;
 4 import java.net.URL;
 5
 6 import javax.xml.namespace.QName;
 7 import javax.xml.ws.Service;
 8
 9 import cn.itcast.hello.HelloService;
10
11
12 public class AppTest2 {
13
14     public static void main(String[] args) throws MalformedURLException
15     {                                                                                //命名空间                                                              service
16         Service s = Service.create(new URL("http://192.168.151.42:5678/hello?wsdl"), new QName("http://service01.itcast.cn/", "HelloServiceService"));
17                                         //命名空间                            服务绑定的port
18         HelloService hs = s.getPort(new QName("http://service01.itcast.cn/","HelloServicePort"), HelloService.class);
19
20         String str = hs.sayHello2("lisi",10);
21         System.out.println(str);
22         System.out.println(hs.getClass().getSimpleName());
23     }
24 }

就可以访问了 服务端了

发布WebService 1.1

时间: 2024-09-29 10:57:03

发布WebService 1.1的相关文章

用JAXWS-RI在Tomcat中发布WebService

JDK中已经内置了Webservice发布,不过要用Tomcat等Web服务器发布WebService,还需要用第三方Webservice框架.Axis2和CXF是目前最流行的Webservice框架,这两个框架各有优点,不过都属于重量级框架. JAXWS-RI是JAX WebService参考实现.相对于Axis2和CXF,JAXWS-RI是一个轻量级的框架.虽然是个轻量级框架,JAXWS-RI也提供了在Web服务器中发布Webservice的功能.官网地址https://jax-ws.jav

Axis2发布webservice(4)—webservice的异步调用

一,发布一个webservice,代码如下 package com.hoo.service; public class AsynchronousService { public String execute() throws InterruptedException{ //让当前线程睡眠5钟,展示异步调用 Thread.sleep(5000); return "done"; } } 二.发布Service,参见前面教程,不多讲 三.RPC方式异步调用: import java.io.I

Web环境使用相对路径发布Webservice

常我们的Webservice服务的发布地址都将是一个相对路径,在与Spring一起使用时我们需要引入Cxf配置Webservice的schema,如jaxws,用以定义对应的Webservice. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="htt

JAVA项目中发布WebService服务——简单实例

1,在Java项目中发布一个WebService服务: 如何发布? --JDK1.6中JAX-WS规范定义了如何发布一个WebService服务: (1)用jdk1.6.0_21以后的版本发布: (2)与Web服务相关的类,都位于Javax.jws.*包中 @WebService--此注解用在类上指定将此类发布成一个WebService: EndPoint--此类为端点服务类,其中publish()方法用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上,用于发布. 2,例子

Spring整合CXF之发布WebService服务

今天我们来讲下如何用Spring来整合CXF,来发布WebService服务: 给下官方文档地址:http://cxf.apache.org/docs/writing-a-service-with-spring.html 根据官方文档.我们把前面的实例用Spring整合CXF来处理下.会简化很多: 首先我们来建一个Maven项目 WebService_CXF 建好项目第一步,我们打开pom.xml 我们来添加下Spring支持: <!-- 添加Spring支持 --> <dependen

Eclipse中Axis2发布WebService

介绍:Axis是apache下一个开源的webservice开发组件. l  开发工具下载: 1.  eclipse的Java EE版本.下载地址:http://www.eclipse.org/downloads/ 2.  axis2.下载地址:http://axis.apache.org/axis2/java/core/download.cgi 3.  eclipse的两个axis2插件: Axis2_Codegen_Wizard Axis2_Service_Archiver. 下载地址:ht

发布WebService及调用WebService方法Demo

打开vs2012(这里为什么强调版本,因为vs2012不支持右键添加Web引用). 创建一个“ASP.NET空Web应用程序” 创建好项目之后,在解决方案中么,创建“Web服务”. 创建好了之后,添加自己定义的方法: 这里,我就不强调了[WebMethod] 特性的重要性. [WebMethod] public string HelloWorld() { return "Hello World"; } /// <summary> /// 自定义的方法 /// </su

FTP方式发布webservice

以前我发布webservice的步骤是:在  C:\inetpub\wwwroot\路径下发布webservice,然后再在IIS中添加网站并制定路径,这样每次发布了webservice后,需要把发布后的文件再拷贝到服务器上,比较麻烦:可以通过FTP方式直接发布到服务器上 采用拷贝的方式发布webservice 一:以文件系统方式发布webservice到本地 二:将发布的文件拷贝到到服务器的C:\inetpub\wwwroot\路径下 三:添加网站: FTP方式发布webservice: 一:

spring,cxf,restful发布webservice传递List,Map,List&lt;Map&gt;

上一篇文章中概述了怎么在Javaweb中发布webservice,这篇文章讲解怎么传递复杂的对象 所用的jar包如下 当服务器返回的是List或者是Map时,一定要将其封装在一个类中, 首先创建封装类,封装了List,Map对象,以及自定义的User类 User.java public class User { private String name; private int age; public User() { } public User(String name, int age) { t

WebServices学习笔记(四)使用services.xml文件发布WebService

四.使用services.xml文件发布WebService 前面发布webservices所建立的java类都不能有包名,这里用配置文件services.xml搭建能有包名的webservice 首先创建MyService类,在service包下 package service; import javax.jws.WebParam; public class MyService { public String getGreeting(@WebParam(name="name")Str