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 } }
: "wsdl2java -uri serviceName.wsdl" - > "ant jar.server -ss -sp" * .aarを生成する –