Tôi mới sử dụng GlassFish Server và WS. Tôi vừa triển khai một ứng dụng Web. được tạo ra với maven có web.xml nàyTriển khai máy chủ GlassFish
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
tôi bấm vào Application Web Links
tôi có lớp học này trong ứng dụng:
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.servlet.http.HttpSession;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
@WebService(serviceName="IberiaWS")
public class IberiaWS {
@Resource
private WebServiceContext wsContext;
public IberiaWS() {
}
private UserVO getSessionUserVO() {
MessageContext mc = wsContext.getMessageContext();
HttpSession session = ((javax.servlet.http.HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST)).getSession();
return (UserVO)session.getAttribute("uservo");
}
private void setSessionUserVO(UserVO uservo) {
MessageContext mc = wsContext.getMessageContext();
HttpSession session = ((javax.servlet.http.HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST)).getSession();
session.setAttribute("uservo", uservo);
}
@WebMethod
public boolean login(String loginName, String loginPwd) throws Exception {
this.setSessionUserVO(new UserDAO().findUser("_"+loginName, "__"+loginPwd));
return isConnected();
}
@WebMethod
public boolean isConnected() {
return (this.getSessionUserVO()!=null);
}
@WebMethod
public IberiaPerson getPerson(String id) {
return new IberiaPerson();
}
@WebMethod
public IberiaPerson findPerson(String companyNr) {
UserVO uservo = this.getSessionUserVO();
IberiaPerson ret=null;
PersonVO p= new PersonDAO().findByCompanyNr(uservo.getAdminCenterId(), uservo.getUserId(), "Iberia", companyNr);
if (p!=null) {
ret = new IberiaPerson();
ret.setPersonId(p.getPersonId());
ret.setCompanyName(p.getVehicleOwnerName());
ret.setCategoryName(p.getCategoryName());
ret.setCompanyNr(p.getCompanyNr());
ret.setFirstName(p.getFirstName());
ret.setLastName(p.getLastName());
ret.setStatusId(p.getStatusId());
ret.setGroupName(p.getGroupList());
ret.setKeyCode(p.getKeyString());
ret.setComments(p.getLmComment());
}
return ret;
}
}
Dường như WS được triển khai kể từ khi tôi nhìn thấy nó trong Engines
Tôi có thể truy cập vào spp. http://localhost:8080/iberiafleet/
Nhưng tôi làm không phải bây giờ làm thế nào để truy cập vào WSLD của triển khai WS
tôi nhận được một trạng thái HTTP 404 trên URL này
http://localhost:8080/iberiafleet/IberiaWSPort?WSDL
và cũng
http://localhost:8080/iberiafleet/IberiaWS?wsdl
Nhưng theo hướng dẫn này, tôi sẽ thấy liên kết Xem Điểm cuối
https://blog.idrsolutions.com/2013/08/creating-and-deploying-a-java-web-service/
nhưng tôi không thấy.
tôi có thể thấy thông báo này trong bảng điều khiển
[#|2017-11-13T10:50:39.993+0100|INFO|glassfish 5.0|javax.enterprise.webservices.metroglue|_ThreadID=19;_ThreadName=RunLevelControllerThread-1510566633374;_TimeMillis=1510566639993;_LevelValue=800;_MessageID=AS-WSMETROGLUE-10010;|
Web service endpoint deployment events listener registered successfully.|#]
không, nó hoạt động :-( –