分類  >  WEB開發 >

web service初學遇到的有關問題

tags:    時間:2013-12-09 22:26:30
web service初學遇到的問題
package org.zttc.service;

import javax.xml.ws.Endpoint;

public class MyServer {

public static void main(String[] args) {
String address = "http://localhost:8888/ns";
Endpoint.publish(address, new MyServiceImpl());
}

}
////////////////////主類
package org.zttc.service;

import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

@WebService()
public interface IMyService {

@WebResult(name="addResult")
public int add(@WebParam(name="a")int a,@WebParam(name="b")int b);

@WebResult(name="minusResult")
public int minus(@WebParam(name="a")int a,@WebParam(name="b")int b);

@WebResult(name="loginUser")
public User login(@WebParam(name="username")String username,@WebParam(name="password")String password);

}
//////////////////////////////////////介面
package org.zttc.service;

import javax.jws.WebService;

@WebService(endpointInterface="org.zttc.service.IMyService")
public class MyServiceImpl implements IMyService {

@Override
public int add(int a, int b) {
System.out.println(a+"+"+b+"="+(a+b));
return a+b;
}

@Override
public int minus(int a, int b) {
System.out.println(a+"-"+b+"="+(a-b));
return a-b;
}

@Override
public User login(String username, String password) {
System.out.println(username+" is logining");
User user = new User();
user.setId(1);
user.setUsername(username);
user.setPassword(password);
return user;
}

}
////////////////////////////////////////////用戶端
Exception in thread "main" com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class org.zttc.service.jaxws.Add is not found. Have you run APT to generate them?
at com.sun.xml.internal.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:256)
at com.sun.xml.internal.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:567)
at com.sun.xml.internal.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:514)
at com.sun.xml.internal.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:341)
at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:227)
at com.sun.xml.internal.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:308)
at com.sun.xml.internal.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:174)
at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:420)
at com.sun.xml.internal.ws.api.server.WSEndpoint.create(WSEndpoint.java:439)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.createEndpoint(EndpointImpl.java:208)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:138)
at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:92)
at javax.xml.ws.Endpoint.publish(Endpoint.java:170)
at org.zttc.service.MyServer.main(MyServer.java:9)
///////////////////////////////////////////////////伺服器報錯
這是怎麼一回事?求教。
------解決方案--------------------
原因:cxf需要jaxws-api-2.1.jar及jaxb-api-2.1.jar的支持

解決方案 
1、將cxf所需的2.1的jar複製一份到jdk目錄下的jre\lib\endorsed文件夾中。如果endorsed文件不存在,可新建。如果不行,可能還需要在public class XXX上方加入@SOAPBinding(style = SOAPBinding.Style.RPC)。

推薦閱讀文章

Bookmark the permalink ,來源:互聯網