接口类:
package plugs.enterpriseServer.service.proxyServer.nginx.webservice;
import javax.jws.WebService;
import plugs.enterpriseServer.service.virtualHost.childDomain.core.shell.JavaShellExcUtil;
@WebService
public interface NginxProxyServerManageIf {
public void startNginx();
public void relaodNginx();
public void checkNginxConfig();
//stop
public void stopServer();
//quit
public void quitServer();
}
实现类1:
package plugs.enterpriseServer.service.proxyServer.nginx.webservice;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import javax.jws.WebService;
import plugs.enterpriseServer.service.proxyServer.nginx.NginxProxyServerConfigLoader;
import plugs.enterpriseServer.service.proxyServer.nginx.NinginStartTask;
import plugs.enterpriseServer.service.virtualHost.childDomain.core.shell.JavaShellExcUtil;
/*
* nginx 管理
*
* server节点管理
*
* 添加主机节点
*
* 添加反向代理节点
*
* nginx 重新加载配置,重启,关闭,配置错误检查
*
*
*
* 命令执行器
*/
@WebService (endpointInterface="plugs.enterpriseServer.service.proxyServer.nginx.webservice.NginxProxyServerManageIf")
public class LinuxNginxShellService implements NginxProxyServerManageIf {
//start
private static String Nginx_Command_Start="start.bat";
private static String Nginx_Command_Reload="reload.bat -s reload";
private static String Nginx_Command_Check="check.bat -t";
//
//关闭nginx:
//nginx -s stop :快速停止nginx
// quit :完整有序的停止nginx
//nginx -s stop
private static String Nginx_Command_Stop="stop.bat -s stop";
private static String Nginx_Command_Quit="quit.bat -s quit";
public void startNginx(){
NinginStartTask task=new NinginStartTask();
task.setApp_start_cmd(Nginx_Command_Start);
Thread d=new Thread(task);
d.start();
}
public void relaodNginx(){
NginxProxyServerConfigLoader c= NginxProxyServerConfigLoader.getInstance();
String serverDir= c.getNginxProxyServerConfig().getServerInstallDir();
String cmd=serverDir+"/"+Nginx_Command_Reload;
System.out.println("exc:"+cmd);
JavaShellExcUtil.exc_process(cmd);
}
public void checkNginxConfig(){
NginxProxyServerConfigLoader c= NginxProxyServerConfigLoader.getInstance();
String serverDir= c.getNginxProxyServerConfig().getServerInstallDir();
String cmd=serverDir+"/"+Nginx_Command_Check;
JavaShellExcUtil.exc_process_re(cmd);
System.out.println("exc:"+cmd);
}
//stop
public void stopServer(){
NginxProxyServerConfigLoader c= NginxProxyServerConfigLoader.getInstance();
String serverDir= c.getNginxProxyServerConfig().getServerInstallDir();
String cmd=serverDir+"/"+Nginx_Command_Stop;
JavaShellExcUtil.exc_process_re(cmd);
System.out.println("exc:"+cmd);
}
//quit
public void quitServer(){
NginxProxyServerConfigLoader c= NginxProxyServerConfigLoader.getInstance();
String serverDir= c.getNginxProxyServerConfig().getServerInstallDir();
String cmd=serverDir+"/"+Nginx_Command_Quit;
JavaShellExcUtil.exc_process_re(cmd);
System.out.println("exc:"+cmd);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
NginxProxyServerManageIf np= new WindowsNginxShellService();
np.startNginx();
//等待Nginx成功启动,否则将无法成功接收命令.
//2s
long millis=2*1000;
try {
Thread.sleep(millis);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
np.checkNginxConfig();
for(int i=0;i<20;i++){
//relaodNginx();
}
//stopServer();
np. quitServer();
}
}
实现类2:
package plugs.enterpriseServer.service.proxyServer.nginx.webservice;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import javax.jws.WebService;
import plugs.enterpriseServer.service.proxyServer.nginx.NginxProxyServerConfigLoader;
import plugs.enterpriseServer.service.proxyServer.nginx.NinginStartTask;
import plugs.enterpriseServer.service.virtualHost.childDomain.core.shell.JavaShellExcUtil;
/*
* nginx 管理
*
* server节点管理
*
* 添加主机节点
*
* 添加反向代理节点
*
* nginx 重新加载配置,重启,关闭,配置错误检查
*
*
*
* 命令执行器
*/
@WebService (endpointInterface="plugs.enterpriseServer.service.proxyServer.nginx.webservice.NginxProxyServerManageIf")
public class WindowsNginxShellService implements NginxProxyServerManageIf {
//start
private static String Nginx_Command_Start="start.bat";
private static String Nginx_Command_Reload="reload.bat -s reload";
private static String Nginx_Command_Check="check.bat -t";
//
//关闭nginx:
//nginx -s stop :快速停止nginx
// quit :完整有序的停止nginx
//nginx -s stop
private static String Nginx_Command_Stop="stop.bat -s stop";
private static String Nginx_Command_Quit="quit.bat -s quit";
public void startNginx(){
NinginStartTask task=new NinginStartTask();
task.setApp_start_cmd(Nginx_Command_Start);
Thread d=new Thread(task);
d.start();
}
public void relaodNginx(){
NginxProxyServerConfigLoader c= NginxProxyServerConfigLoader.getInstance();
String serverDir= c.getNginxProxyServerConfig().getServerInstallDir();
String cmd=serverDir+"/"+Nginx_Command_Reload;
System.out.println("exc:"+cmd);
JavaShellExcUtil.exc_process(cmd);
}
public void checkNginxConfig(){
NginxProxyServerConfigLoader c= NginxProxyServerConfigLoader.getInstance();
String serverDir= c.getNginxProxyServerConfig().getServerInstallDir();
String cmd=serverDir+"/"+Nginx_Command_Check;
JavaShellExcUtil.exc_process_re(cmd);
System.out.println("exc:"+cmd);
}
//stop
public void stopServer(){
NginxProxyServerConfigLoader c= NginxProxyServerConfigLoader.getInstance();
String serverDir= c.getNginxProxyServerConfig().getServerInstallDir();
String cmd=serverDir+"/"+Nginx_Command_Stop;
JavaShellExcUtil.exc_process_re(cmd);
System.out.println("exc:"+cmd);
}
//quit
public void quitServer(){
NginxProxyServerConfigLoader c= NginxProxyServerConfigLoader.getInstance();
String serverDir= c.getNginxProxyServerConfig().getServerInstallDir();
String cmd=serverDir+"/"+Nginx_Command_Quit;
JavaShellExcUtil.exc_process_re(cmd);
System.out.println("exc:"+cmd);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
NginxProxyServerManageIf np= new WindowsNginxShellService();
np.startNginx();
//等待Nginx成功启动,否则将无法成功接收命令.
//2s
long millis=2*1000;
try {
Thread.sleep(millis);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
np.checkNginxConfig();
for(int i=0;i<20;i++){
//relaodNginx();
}
//stopServer();
np. quitServer();
}
}
调用代码:
address=http://localhost:8080/ChildDomainServiceServerWeb/LinuxNginxShellService
implementor=plugs.enterpriseServer.service.proxyServer.nginx.webservice.LinuxNginxShellServiceserviceName={http://webservice.nginx.proxyServer.service.enterpriseServer.plugs/}LinuxNginxShellServiceService
portName={http://webservice.nginx.proxyServer.service.enterpriseServer.plugs/}LinuxNginxShellServicePort
annotationWsdlLocation=null
wsdlLocationOverride=null
mtomEnabled=false
14:03:42,140 INFO [org.jboss.ws.cxf.metadata] (MSC service thread 1-4) JBWS024061: Adding service endpoint metadata: id=plugs.enterpriseServer.service.virtualHost.childDomain.webservice.ChildDomianVirtualHostService
address=http://localhost:8080/ChildDomainServiceServerWeb/ChildDomianVirtualHostService
implementor=plugs.enterpriseServer.service.virtualHost.childDomain.webservice.ChildDomianVirtualHostService
serviceName={http://webservice.childDomain.virtualHost.service.enterpriseServer.plugs/}ChildDomianVirtualHostServiceService
portName={http://webservice.childDomain.virtualHost.service.enterpriseServer.plugs/}ChildDomianVirtualHostServicePort
annotationWsdlLocation=null
wsdlLocationOverride=null
mtomEnabled=false
14:03:42,140 INFO [org.jboss.ws.cxf.metadata] (MSC service thread 1-4) JBWS024061: Adding service endpoint metadata: id=plugs.enterpriseServer.service.proxyServer.nginx.webservice.WindowsNginxShellService
address=http://localhost:8080/ChildDomainServiceServerWeb/WindowsNginxShellService
implementor=plugs.enterpriseServer.service.proxyServer.nginx.webservice.WindowsNginxShellService
serviceName={http://webservice.nginx.proxyServer.service.enterpriseServer.plugs/}WindowsNginxShellServiceService
portName={http://webservice.nginx.proxyServer.service.enterpriseServer.plugs/}WindowsNginxShellServicePort
annotationWsdlLocation=null
wsdlLocationOverride=null
mtomEnabled=false