2017-11-10 40 views
5

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.

enter image description here

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.|#] 

Trả lời

0

Tôi nghĩ rằng bạn có một lỗi đánh máy trong URL WSDL của bạn, không

http://localhost:8080/iberiafleet/IberiaWS?wsdl 

làm việc?

+0

không, nó hoạt động :-( –

Các vấn đề liên quan