1、自动配置类:
@Configuration
public class AutoConfiguration {
@Bean
public ServletRegistrationBean registrationAxisServlet(AxisServlet axisServlet) {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(axisServlet, "/services/*");
// servletRegistrationBean.setLoadOnStartup(100);//默认为-1访问时才初始化
return servletRegistrationBean;
}
@SuppressWarnings("rawtypes")
@Bean
public ServletListenerRegistrationBean listenerRegistrationAxisServlet() {
return new ServletListenerRegistrationBean<ConfigAxisServletContextListener>(new ConfigAxisServletContextListener());
}
@Bean
public AxisServlet axisServlet() {
return new AxisServlet();
}
}
2、配置路径:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ConfigAxisServletContextListener implements ServletContextListener {
private final Logger logger = LoggerFactory.getLogger(getClass());
@Override
public void contextInitialized(ServletContextEvent sce) {
logger.info("测试信息,进入处理server-config.wsdd的JAVA类");
String wsdd = "server-config.wsdd";
File target = new File(sce.getServletContext().getRealPath("/WEB-INF") + File.separator + wsdd);
logger.info("server-config.wsdd 的路径为:",target.getAbsolutePath());
if (!target.exists()) {
try {
target.getParentFile().mkdirs();
target.createNewFile();
} catch (IOException e) {
logger.debug("获取创建【/WEB-INF】路径出错:" + e.getMessage(), e);
}
String path = "/config/" + wsdd;
File source = new File(path);
try (InputStream is = new FileInputStream(source); FileOutputStream os = new FileOutputStream(target);) {
int bytesRead = 0;
byte[] buffer = new byte[10 * 1024];
while ((bytesRead = is.read(buffer, 0, buffer.length)) != -1) {
os.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
logger.warn("将文件【config/" + wsdd + "】复制到【/WEB-INF】下出错:" + e.getMessage());
}
}
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}