2014-01-06 2 views
2

У меня есть установки Tomcat 7.0 и Netbeans IDE 7.4 в моем локальном хосте, я создать веб-приложение JSF 2.2, в этом проекте я создать имя веб-службы ChargingGateway имеют WebMethod, как это:Ошибка при подключении веб-служб, развернутых на tomcat?

@WebMethod(operationName = "LoginandCharging") 
    public String LoginandCharging(@WebParam(name = "usernameVMG") String txtusernameVMG,@WebParam(name = "passwordVMG") String txtpasswordVMG,@WebParam(name = "servicename") String txtservicename, @WebParam(name = "serial") String txtserial, @WebParam(name = "pin") String txtpin, @WebParam(name = "cardtype") String txtcardtype) throws JSONException, Exception { 
    //login 
    String output=""; 
    int ID=-1; 
    boolean loginOK =false; 
    Connection conn1=DBUlti.DBConnect.getConnectionVMG(); 
    UserDAL dal = new UserDAL(conn1); 
     VMGLog log1= new VMGLog(); 
    log1.WriteLog(txtusernameVMG+","+txtpasswordVMG+","+txtserial+","+txtpin+","+txtservicename+","+txtcardtype); 

    ResultSet rs = dal.LoginVMG(txtusernameVMG, txtpasswordVMG); 

    if(rs.next()){ 
     log1.WriteLog("login success"); 
     UserEntityVMG entity = new UserEntityVMG(); 
     entity.setID(rs.getInt("ID")); 
     ID=rs.getInt("ID"); 
     entity.setUsername(rs.getString("Username")); 
     entity.setPassword(rs.getString("Password")); 
     entity.setMsisdn(rs.getString("msisdn")); 
     entity.setEmail(rs.getString("email")); 
     entity.setRegister_date(rs.getDate("register_date")); 
     entity.setIsBanned(rs.getBoolean("isBanned")); 
     entity.setRoll(rs.getInt("Roll")); 
     loginOK=true; 
    } 
    if(loginOK==true){ 
      StringBuilder data = new StringBuilder(); 
    String cardtype = ""; 
    int minlengthOfPin = 0; 
    int maxlengthOfPin = 0; 
    int minlengOfSerial = 0; 
    int maxlengOfSerial = 0; 
    boolean isSendserial = true; 
    boolean isSendcardtype=true; 
    //servicename:fpt,epay,vtc 
    log1.WriteLog("login=true"); 
    String servicename = txtservicename; 
     log1.WriteLog(servicename); 
    if (servicename.equalsIgnoreCase("EPAY")) { 
     String temp = txtcardtype; 
     if (temp.equalsIgnoreCase("VNP")) { 
      minlengthOfPin = 12; 
      maxlengthOfPin = 15; 
      minlengOfSerial = 9; 
      maxlengOfSerial = 9; 
     } else if (temp.equalsIgnoreCase("VMS")) { 
      minlengthOfPin = 12; 
      maxlengthOfPin = 14; 
      minlengOfSerial = 9; 
      maxlengOfSerial = 15; 
     } else if (temp.equalsIgnoreCase("VTT")) { 
      minlengthOfPin = 13; 
      maxlengthOfPin = 15; 
      minlengOfSerial = 11; 
      maxlengOfSerial = 15; 
     } else if (temp.equalsIgnoreCase("MGC")) { 
      minlengthOfPin = 12; 
      maxlengthOfPin = 12; 
      minlengOfSerial = 12; 
      maxlengOfSerial = 12; 
      isSendserial = false; 
     } 
     cardtype = temp; 
    } 
    else if (servicename.equalsIgnoreCase("FPT")) { 
     cardtype = "FPT"; 
     minlengthOfPin = 10; 
     maxlengthOfPin = 10; 
     minlengOfSerial = 10; 
     maxlengOfSerial = 10; 
    } 
    else if (servicename.equalsIgnoreCase("VTC")) { 
     cardtype = "VTC"; 
     minlengthOfPin = 12; 
     maxlengthOfPin = 12; 
     minlengOfSerial = 12; 
     maxlengOfSerial = 12; 
    } 
if(cardtype.length()<=0){ 
    isSendcardtype=false; 
} 
log1.WriteLog("Sname:"+servicename); 
    data.append(servicename); 
    log1.WriteLog("user"+Bussiness.user); 
    data.append(Bussiness.user); 
    log1.WriteLog("txtserial"+txtserial); 
    if(isSendserial==true){ 
    data.append(txtserial); 
    } 
    log1.WriteLog("pin"+txtpin); 
    log1.WriteLog("cardtype:"+cardtype); 
    data.append(txtpin); 
    if(isSendcardtype==true){ 
    data.append(cardtype); 
    } 
    log1.WriteLog("subcpid"+Bussiness.subcpid); 
    data.append(Bussiness.subcpid); 

    String mac = des.DESMAC(data.toString(), EpurseConfig.keyUI, "DESede"); 
    log1.WriteLog("Mac="+mac+",data="+data.toString()); 
    String username = Bussiness.user; 

    String serial = ""; 
    System.out.println("serial length:" + txtserial.length()); 
    if (txtserial.length() >= minlengOfSerial && txtserial.length() <= maxlengOfSerial) { 
     serial = des.Encrypt(txtserial, EpurseConfig.keyUI, "DESede"); 
    } 
    else output=""; 

    String pin = ""; 
    System.out.println("pin length:" + txtpin.length()); 
    if (txtpin.length() >= minlengthOfPin && txtpin.length() <= maxlengthOfPin) { 
     pin = des.Encrypt(txtpin, EpurseConfig.keyUI, "DESede"); 
    } 
    else output=""; 
    String subcp = Bussiness.subcpid; 
    log1.WriteLog("Bat dau day JSON"); 
    JSONObject json = new JSONObject(); 
    json.put("servicename", servicename); 
    json.put("username", username); 
    if(serial.length()>0){ 
    json.put("serial", serial); 
    } 
    json.put("pin", pin); 
    if(cardtype.length()>0){ 
    json.put("cardtype", cardtype); 
    } 
    json.put("subcp", subcp); 
    json.put("mac", mac); 
    log1.WriteLog("BGoi webservice"); 
    String response = new ServiceCardProxy(endpoint).gateCardInput(json.toString()); 
    log1.WriteLog("Response="+response); 
    JSONObject jsonResponse = (JSONObject) new JSONParser().parse(response); 
      String Flag=jsonResponse.get("flag").toString(); 
      String Description=jsonResponse.get("description").toString(); 
      String cardAmount=jsonResponse.get("cardAmount").toString(); 
       String cardID=jsonResponse.get("cardID").toString(); 

     ChargingDAL dalCharge= new ChargingDAL(conn1); 

     int InsertData=dalCharge.ChargeVMG(ID,servicename,serial, pin, cardtype, Flag,Description,cardAmount,cardID); 

    output= response; 
     }     
    return output; 

} 

использование для регистрации информации пользователя & отклика от другого API. Я построил и развернул OK => получил военный файл после проекта строительства: «Дверь здания: D: \ Setup \ Java \ RDB_JSF \ dist \ RDB_JSF.war".

Я этим руководством: Развертывание и тестирование веб-службы

После развертывания веб-службы на сервере, вы можете использовать IDE для открытия тестового клиента сервера, если сервер имеет тестовый клиент. Серверы GlassFish и WebLogic предоставляют тестовые клиенты.

If you are using the Tomcat Web Server, there is no test client. **You can only run the project and see if the Tomcat Web Services page opens. In this case, before you run the project, you need to make the web service the entry point to your application. To make the web service the entry point to your application, right-click the CalculatorWSApplication project node and choose Properties. Open the Run properties and type /CalculatorWS in the Relative URL field. Click OK. To run the project, right-click the project node again and select Run.** 

по этой ссылке: https://netbeans.org/kb/docs/websvc/jax-ws.html#Exercise_1 так изменить Относительное поле URL в/ChargingGateway, которое мое имя службы. Затем я запускаю проект и просматриваю «localhost: 8080/RDB_JSF/ChargingGateway», я получил «HTTP-статус 404 -/RDB_JSF/ChargingGateway».

Пожалуйста, помогите мне в развертывании веб-сервисов на Tomcat.

+0

Что вы получите, когда попробуете localhost: 8080/RDB_JSF/ChargingGateway/LoginAndCharging ?? – jsjunkie

+0

Та же ошибка: HTTP Status 404 -/RDB_JSF/ChargingGateway/LoginAndCharging тип отчета Статус сообщение/RDB_JSF/ChargingGateway/LoginAndCharging описание Запрашиваемый ресурс не доступен. – user3164173

ответ

2

Для проектов Java EE требуется сервер GlassFish или сервер Oracle WebLogic 12c. Входящий в комплект веб-сервер Tomcat не является полностью совместимым с Java EE веб-сервером. Тем не менее, веб-сервер Tomcat 7.x можно настроить для поддержки некоторых функций Java EE. См. Проект Apache TomEE (http://openejb.apache.org/) для получения информации о том, как добавить поддержку Java EE в tomcat.

+0

Спасибо, я попробую. – user3164173

Смежные вопросы