我是webservice的新手。我需要创建一个JAX-WS Web服务来返回一些用户详细信息
我知道如何创建一个可以返回String,int等原始类型的Web服务。但我需要创建Web服务来返回Map。 MAP可以包含用户定义的类对象。
我在谷歌搜索,但我没有得到一个明确的例子。
任何人都可以发布一个JAX-WS webservice的示例,返回一个Map,List ..或者我可以参考的任何链接。
我尝试创建一个,但它无法正常工作。以下是代码:
LoginMethodsImpl.java
@WebService
public interface LoginMethods {
public Map authenicateUser(@WebParam(name="mailId")String mailId,
@WebParam(name="password")String password);
}
LoginMethodsImpl.java
@WebService(endpointInterface="com.Nagesh.AndroidLoginExample.src.LoginMethods",
portName="LoginWSPort",
serviceName="LoginService")
public class LoginMethodsImpl implements LoginMethods{
@Override
public Map<String,Object> authenicateUser(String mailId,String password) {
Map<String,Object>userDetailsMap=new HashMap<String,Object>();
con=new DBConnection().getDBConnection();
stmt=con.prepareStatement(USER_LOGIN_SQL);
stmt.setString(1, mailId);
rs=stmt.executeQuery();
while(rs.next()){
String pwd=rs.getString(2);
if(pwd.equals(password))
{
userDetailsMap.put("STAT","SUCCESS");
userDetailsMap.put("CUST_ID", rs.getInt(1));
userDetailsMap.put("EMAILID", rs.getString(2));
userDetailsMap.put("NAME", rs.getString(4));
userDetailsMap.put("PHONE", rs.getString(5));
}
else
userDetailsMap.put("STAT", "FAILED");
}
return userDetailsMap;
}
}
My Webservice中的其他文件是:
sun-jaxws.xml
web.xml
我在创建Web服务的过程中使用WSGEN工具创建了一个JAXB类 我得到的例外
failed to parse runtime descriptor: javax.xml.ws.WebServiceException: class com.Nagesh.AndroidLoginExample.src.jaxws.AuthenicateUserResponse do not have a property of the name return
javax.xml.ws.WebServiceException: class com.Nagesh.AndroidLoginExample.src.jaxws.AuthenicateUserResponse do not have a property of the name return
at com.sun.xml.ws.server.sei.EndpointResponseMessageBuilder$DocLit.<init>(EndpointResponseMessageBuilder.java:258)
at com.sun.xml.ws.server.sei.TieHandler.createResponseMessageBuilder(TieHandler.java:212)
at com.sun.xml.ws.server.sei.TieHandler.<init>(TieHandler.java:117)
at com.sun.xml.ws.db.DatabindingImpl.<init>(DatabindingImpl.java:116)
at com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:74)
at com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:58)
at com.sun.xml.ws.db.DatabindingFactoryImpl.createRuntime(DatabindingFactoryImpl.java:120)
at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:521)
注意:我是第一次创建Web服务。