2016-04-19 8 views
0

WebサービスをデプロイするときにstartUpメソッドを実行しようとしましたが、機能しません。Webサービスのデプロイ時にstartUpメソッドを実行します。

私が使用しています:私はPOJOとして私のサービスを展開するためにしようと試みてきました1.7.0

窓7

のTomcat 8.0.30

のAxis2また、* .aarを生成して配置してみてください:

apache-tomcat-8.0.30 \ webapps \ axis2 \ WEB-INF \ services しかし、私がtomcatを実行し、このサービスと他のサービスをデプロイすると、startUpメソッドは起動しません。 これは私のコードです:

import java.io.*; 
import java.util.*; 
import org.apache.axis2.context.ConfigurationContext; 
import org.apache.axis2.description.AxisService; 
import org.apache.axis2.engine.ServiceLifeCycle; 

public class Login implements ServiceLifeCycle{ 

    static String IPprop = ""; 
    static String rutaDB = "C:/resources/users_DB.txt"; 
    static String rutaUddiXml = "C:/resources/uddi.xml"; 
    static String rutaIP = "C:/resources/ip.txt"; 
    static boolean registrado=false; 
    static String comp =""; 

    public static void main(String[] args) { 

     IP(); 
     String nombreServicio = "Login"; 
     String rutaServicio = "http://"+ IPprop +":8080/axis2/services/Login"; 
     SimplePublishPortable spp = new SimplePublishPortable(rutaUddiXml); 
     spp.publish(nombreServicio, rutaServicio); 
     System.out.println("te registraste"); 
    } 

    public static void createUser(String user, String pass) { 
     interacFich("crea", user, pass); 
    } 

    public static String loginAccess(String user, String pass) { 
     return interacFich("login", user, pass); 
    } 

    public static String runComprobation(){ 
     return "deployed service" + comp; 
    } 

    public static String regComprobation(){ 
     if(registrado==true){ 
      return "registered"; 
     } 
     else{ 
      return "failed"; 
     } 
    } 

    private static String getToken() { 
     String cadenaAleatoria = ""; 

     int i = 0; 
     while (i < 10) { 
      char c = (char) ((int) (Math.random() * 255 + 1)); 
      if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z')) { 
       cadenaAleatoria += c; 
       i++; 
      } 
     } 
     return cadenaAleatoria; 
    } 

    private static String interacFich(String accion, String user, String pass) { 
     String usuario = ""; 
     LinkedHashMap<String, String> usuarios = new LinkedHashMap<String, String>(); 

     File archivo = new File(rutaDB); 

     // leer fichero y meterlo en el mapa 
     if (archivo.exists() == false) { 
      try { 
       archivo.createNewFile(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } else { 
      try (BufferedReader br = new BufferedReader(new FileReader(archivo))) { 
       while (br.ready()) { 
        usuario = br.readLine(); 
        String[] param = usuario.split("\\*"); 
        usuarios.put(param[0], param[1]); 

       } 
       br.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     switch (accion) { 
     case "crea": 
      usuarios.put(user + "-" + pass, getToken()); 

      try (BufferedWriter bw = new BufferedWriter(new FileWriter(archivo))) { 
       Set<String> keysUsuarios = usuarios.keySet(); 
       for (String k : keysUsuarios) { 
        bw.write(k + "*" + usuarios.get(k).toString()); 
        bw.write("\n"); 

       } 
       System.out.println("todo escrito"); 
       bw.close(); 

       return "el fichero se crea"; 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      break; 
     case "login": 
      if (usuarios.containsKey(user + "-" + pass)) { 
       return usuarios.get(user + "-" + pass); 
      } 
      return "User o pass erroneos"; 
     default: 
      break; 

     } 

     return null; 
    } 

    private static void IP() { 
     File archivo = new File(rutaIP); 
     try (BufferedReader br = new BufferedReader(new FileReader(archivo))) { 
      br.readLine(); 
      IPprop = br.readLine(); 


    br.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    return; 

} 
@Override 
public void startUp(ConfigurationContext arg0, AxisService arg1) { 
    /////////////// 
    //registrarse// 
    /////////////// 
    comp="entramos"; 
    IP(); 
    String nombreServicio = "Login"; 
    String rutaServicio = "http://"+ IPprop +":8080/axis2/services/Login"; 
    SimplePublishPortable spp = new SimplePublishPortable(rutaUddiXml); 
    spp.publish(nombreServicio, rutaServicio); 
    registrado=true; 
} 

@Override 
public void shutDown(ConfigurationContext arg0, AxisService arg1) { 
    // TODO Auto-generated method stub 

} 

} 

答えて

0

は、あなたがあなたのサービスを記述した上でサービス定義(services.xmlの)ファイルを、作成したことがありますか?

私は、次のリンク(Axis2のクイックスタート)でCode Listing 3: The Service Definition Fileの例と同様のファイルを参照しています:私はときはい、services.xmlのが自動的に生成され

https://axis.apache.org/axis2/java/core/docs/quickstartguide.html#services

+0

: "wsdl2java -uri serviceName.wsdl" - > "ant jar.server -ss -sp" * .aarを生成する –

関連する問題