主要类代码如下:
DemoAction.java:
package com.xy6;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class DemoAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
this.publishServer1();
ActionForward forward = new ActionForward();
forward = mapping.findForward("success");
return forward;
}
/**
* 发布webservice接口,法一
*/
private void publishServer1(){
Server server = new Server();
server.server();
}
}
DemoForm.java:package com.xy6;
public class DemoForm {
String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
HelloWorldServiceInf.java:package com.xy6;
import javax.jws.WebService;
import javax.jws.WebParam;
@WebService
public interface HelloWorldServiceInf {
/**
* @param username
* @return
*/
String sayHello(@WebParam(name="username") String username);
/**
* @param form
* @return
*/
String sayHi(@WebParam(name="form") DemoForm form);
}
Server.java:
package com.xy6;
import javax.jws.WebService;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
@WebService(endpointInterface="com.xy6.HelloWorldServiceInf",serviceName="helloWorldService")
public class Server implements HelloWorldServiceInf{
public String sayHello(String username){
return "hello," + username;
}
public String sayHi(DemoForm form){
form.setUsername("form");
return "hello,form";
}
public void server() {
JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
factoryBean.setAddress("http://localhost:8080/webservice1");
factoryBean.setServiceClass(HelloWorldServiceInf.class);
factoryBean.setServiceBean(new Server());
factoryBean.getInInterceptors().add(new LoggingInInterceptor());
factoryBean.create();
}
}
在浏览器中访问http://localhost:9001/web/demo.do时,会执行DemoAction类,从而发布web服务。