2017-11-10 85 views
5

Jestem nowy przy użyciu serwera GlassFish i WS. Właśnie wdrożyłem aplikację internetową. generowane z Maven Mając to web.xmlWdrażanie serwera 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> 

klikam na Wniosku Linki

mam tej klasy w aplikacji:

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; 
     } 
    } 

Wydaje się, że WS jest wdrażany odkąd widziałem to w Silnikach

Mogę uzyskać dostęp do spp. http://localhost:8080/iberiafleet/

Ale nie teraz, jak uzyskać dostęp do WSLD rozmieszczanego WS

dostałam stanu HTTP 404 na ten adres URL

http://localhost:8080/iberiafleet/IberiaWSPort?WSDL

a także

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

Ale według tego samouczka powinienem zobaczyć link Zobacz Endpoint

https://blog.idrsolutions.com/2013/08/creating-and-deploying-a-java-web-service/

ale ja tego nie widzę.

enter image description here

widzę ten komunikat w konsoli:

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

Odpowiedz

0

myślę, że masz literówkę w adresie URL WSDL, czy

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

pracę?

+0

nie, to działa mot :-( –