进入File > New Project…菜单打开新建项目窗口,依次选择Java、WebServices,Version项选择Apache Axis,Libraries项选择 Download。而后点击Next按钮进入下一页。java
在下一页中输入项目名称,而后点击Finish按钮开始下载依赖包。依赖包下载完成后进入新建的项目。web
src/example目录下自动建立了一个 HelloWold 类:apache
package example;/**浏览器
* Created by Administrator on 2015/7/30.tomcat
*/服务器
public class HelloWorld {app
public String sayHelloWorldFrom(String from) {ide
String result = "Hello, world, from " + from;工具
System.out.println(result);spa
return result;
}
}
web/WEB-INF目录下建立一个server-config.wsdd服务配置文件。
在HelloWorld.java文件上点击右键,选WebServices > Generate Wsdl From Java Code 。
而后在出现的窗口里点击肯定按钮。
在HelloWorld.java所在目录会生成一个HelloWorld.wsdl文件。
启动服务这里稍微有点复杂,由于要配置 Tomcat 服务器。先喝口茶再继续往下看。
选择Run > Edit Configurations…菜单,打开Run/Debug Configurations窗口。
在Run/Debug Configurations窗口里添加+按钮,在出现的菜单里选择Tomcat Server > Local。若是看不到Tocmat Server菜单项,则点击最下面的29 items more (irelevant)…菜单项查找。
而后在添加的Tomcat Server配置页面中添加配置的Name、Application server和HTTP Port。若是Application server为空,将本地的 Tomcat 安装地址添加进来。若是本地没有,从网上下载 Tomcat 7:
https://tomcat.apache.org/download-70.cgi
这时配置页面底部可能会显示有Warning:No Artifacts marked for deployment(警告:没有标记要部署的产物)。
点击警告信息右侧的Fix…按钮切换到Deployment标签页。
在Deployment标签页点击Deploy at the server startup区的+按钮,选择Artifacts
添加 Artifact 后的界面以下,已经没有警告了。点击OK完成运行参数的配置。
到这个时候,而后能够运行起服务了,可是访问服务页面时仍是会报错。由于还要给部署的 Artifact 添加 Apache Axis 包的依赖。
选择File> Project Structure…菜单。
在出现的窗口中选择Project Settings > Artifacts,会到在新的警告信息。点击警告信息右侧的Fix…按钮。
在弹出菜单里选择Add 'JAX-WS-Apache Axis' to the artifact。
修复完成后警告消失。
点击工具栏上的运行或调试按钮运行服务。
而后在浏览器里输入:
http://localhost:8080/services
访问结果以下:
WSDL 文件能够用来生成客户端代码,也能够用来生成服务端代码。客户端代码用于访问远程服务,服务端代码用于提供远程服务。在 IntelliJ IDEA 里这两个操做是相似的。这里主要讲述服务端代码的生成。
一个 WSDL 文件对应一个 JAVA 类,好比前面的HelloWorld.wsdl文件对应HelloWorld.java。复杂的 WSDL 文件除了对应有一个主类外,还会有辅助类,好比主类方法中使用到的 Bean 等。
这里假设要将主类生成到 services 包目录下,那么在src/services(没有的本身建立一个)目录上点击右键,在出如今的菜单中选择WebService > Genarete Java Code From Wsdl…:
在出现的窗口是选择远程 WSDL 的地址,或者选择本地的 WSDL 文件,而后选择Output mode(输出模式)。这里做者选择成功server生成服务端代码, 用于对外提供服务。固然也能够选择client生成客户端代码用于访问远程服务。
下面是电信 TSM WebService 的 WSDL 文件生成的代码文件列表:
点击OK按钮后生成对应的文件。其中包含一个名为deploy.wsdd的文件,将该文件中的service标签复制到web/WEB-INF/service-config.wsdd文件的<deployment>标签下,用于对外发布。
运行项目的结果以下:
若是手动写的service-config.wsdd文件,可能不能访问 WSDL 文件。这个时候能够在server-config.wsdd文件的<deployment>标签下手动添加<transport>标签。内容以下:
<deployment
xmlns="http://xml.apache.org/axis/wsdd/";
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">;
<transport name="http">
<requestFlow>
<handler type="java:org.apache.axis.handlers.http.URLMapper"/>
</requestFlow>
</transport>
...
</deployment>