java中webservice的发布

一,创建服务并发布:

1.新建一webservice项目
java中webservice的发布_第1张图片


输入项目名HelloWorld,framework选中xfire,然后下一步创建XFire Servlet和services.xml,如图所示:

 java中webservice的发布_第2张图片

 默认情况下,会选中Servlet class为org.codehaus.xfire.transport.http.XFireConfigurableServlet,在创建Web Service Project向导完成之后,该XFire Servlet会自动在web.xml中配置好的。

接下来,添加XFire的库文件,如下所示:

java中webservice的发布_第3张图片
 
单击完成就是完整的Web Service Project的创建。

这时候,可以看到工程中多了一个WebServices目录,该目录下面生成的就是services.xml文件,内容如下所示:


 http://xfire.codehaus.org/config/1.0">

应用的部署描述符文件web.xml文件内容如下所示:


 Java 2 Platform, Enterprise Edition (J2EE) : XML Schemas for J2EE Deployment Descriptors" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="Java 2 Platform, Enterprise Edition (J2EE) : XML Schemas for J2EE Deployment Descriptors   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
     XFireServlet
     org.codehaus.xfire.transport.http.XFireConfigurableServlet
     0
 

 
     XFireServlet
     /services/*
 

 
     index.jsp
 

 

其实,就是配置了一个名称为XFireServlet的Servlet及其映射。

 创建Web Service文件,如图所示:

 java中webservice的发布_第4张图片

单击下一步,如图所示:

java中webservice的发布_第5张图片

需要选中Create new Java bean,然后创建Java Web Service,如图所示:

java中webservice的发布_第6张图片

上面,HelloWorldService就是我们创建的服务的名称,可以通过这个字符串来调用相应的服务。

此时,services.xml文件中就会自动配置刚才定义的服务了,如下所示:


 http://xfire.codehaus.org/config/1.0">


    HelloWorldService
   
     tk.shirdrn.webservice.IHelloWorldService
   

   
     tk.shirdrn.webservice.HelloWorldServiceImpl
   

   
    literal
    application
 

下面实现定义的服务,首先在接口类IHelloWorldService.java文件中修改并且添加所需要定义的服务:

package tk.shirdrn.webservice;

public interface IHelloWorldService {

 public String showGreetings(String name);
 public String getServerTime();

 }

接着就要实现该接口,HelloWorldServiceImpl.java实现如下:

package tk.shirdrn.webservice;

public class HelloWorldServiceImpl implements IHelloWorldService {

public String getServerTime() {
    String date = new java.util.Date().toLocaleString();
    return date;
 }

public String showGreetings(String name) {
    String greetings = "Hello," + name + "!";
    return greetings;
 }

 }

将该Web Service发布到Tomcat服务器上,并启动Tomcat WEB服务器。

可以在MyEclipse工具栏中看到快捷方式,如图所示:

打开Web Service Explorer,你会看到如图所示的Web Service Explorer界面:

java中webservice的发布_第7张图片

如果不是第一次使用的话,可以直接在Actions框架页面中选择Browse来查找可用的URL;否则,你需要在Actions框架内填写正确的WSDL URL。例如这里使用的是:

http://localhost:8080/HelloWorld/services/HelloWorldService?WSDL

如果失败的话,在Status中会提示错误信息;如果成功的话,显示如下所示的界面:

java中webservice的发布_第8张图片

现在可以调用Web Service了。

选中左侧导航栏服务中具体服务,就可以在右侧进行调用获得服务,如图所示:

java中webservice的发布_第9张图片上面,是直接使用MyEclipse内置的Web Service Explorer进行测试。另外,还可以直接在外部的浏览器中进行测试,例如,在IE浏览器地址栏中键入链接:

http://localhost:8080/HelloWorld/services/HelloWorldService?WSDL

可以在页面上看到如下所示的WSDL文件:


 http://webservice.shirdrn.tk" xmlns:tns="http://webservice.shirdrn.tk" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
 
 http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://webservice.shirdrn.tk">
 
 
 

 
 
 
 
 

 

 

 
 
 
 
 

 

 

 
 
 
 
 

 

 

 

 

 
    
    

 

 
    
    

 

 
    
    

 

 
    
    

 

 
    
      
    

      
    

    

    
      
    

      
    

    

 

 
     http://schemas.xmlsoap.org/soap/http"/>
    
      
      
        
      

       
        
      

    

    
      
      
        
      

      
        
      

    

 

 
    
       http://localhost:8080/HelloWorld/services/HelloWorldService"/>
    

 

 

这也说明我们开发的Web Service发布成功。

Linuxweb service的发布(tomcat)

先安装好jdktomcat

如果tomcat正常启动了,把windows下已经写好的webservice导出带.war后缀的包,放到tomcat/webapps下面就可以了,访问的地址跟windows下面的一样

Linux下设置开机启动tomcat

修改/usr/local/tomcat/bin/startup.sh

export JAVA_HOME=/usr/java/jdk1.6.0_32

export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/rt.jar

export PATH=$JAVA_HOME/bin:$PATH

export CATALINA_HOME=/usr/local/tomcat

/usr/local/tomcat/bin/catalina.sh start

在etc/rc.d/rc.local中加入:

/usr/local/tomcat/bin/startup.sh

1,启动tomcat服务  (必须要用第二种)
 
方式一:直接启动 ./startup.sh
 
方式二:作为服务启动 nohup ./startup.sh &
 
方式三:控制台动态输出方式启动 ./catalina.sh run
 
解释:
 
通过方式一、方式三启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也会立即停止,通过方式二可以作为linux服务一直运行
 
通过方式一、方式二方式启动的tomcat,其日志会写到相应的日志文件中,而不能动态地查看tomcat控制台的输出信息与错误情况,通过方式三可以以控制台模式启动tomcat服务,
 
直接看到程序运行时后台的控制台输出信息,不必每次都要很麻烦的打开catalina.out日志文件进行查看,这样便于跟踪查阅后台输出信息。tomcat控制台信息包括log4j和System.out.println()等输出的信息。

你可能感兴趣的:(servlet,java,前端)