最近几天我花了很多时间挖掘码头.我对开发中的环境可能与生产环境相同的可能性印象深刻!
目前我想从小做起并开始加强开发过程.我们正在开发部署在tomcat上的Java应用程序.开发人员正在使用Eclipse和IntelliJ等IDE.
在开发期间,您可以在IDE中配置tomcat环境,以便自动部署和调试代码.因此必须可以设置tomcat基目录.
目前我有一个docker debian映像,在/ opt/tomcat上安装了tomcat.
我现在希望能够将容器/ opt/tomcat目录的内容链接到主机中的目录.可悲的是,这个功能似乎并不存在.使用-v选项,您只能在容器中安装主机目录,而不是相反.
目前我看到的唯一解决方案是挂载容器的webapps目录并将我的war文件放在这里,这在我看来非常没有效果.
您必须手动启动/重新启动tomcat,只能进行远程调试,您的IDE控制台中没有日志.
那么,有没有人有任何想法使用docker优化Java Webapp开发的开发工作流程?
我想用CamelBlueprintTestSupport创建集成测试.我启动我的Camelcontext,起初看起来还不错:
[main] ingRestJobAdvertApiOfFirstbird INFO跳过CamelContext作为系统属性skipStartingCamelContext设置为true.[main] BlueprintCamelContext INFO Apache Camel 2.15.1.redhat-620133(CamelContext:camel-1)即将开始
路线也开始了.但是我只是在我的控制台中收到此消息:
在主循环中,我们遇到了严重问题:org.apache.felix.fileinstall.internal.DirectoryWatcher.run中的java.lang.NullPointerException java.lang.NullPointerException(DirectoryWatcher.java:303)
骆驼版:2.15.1.redhat-620133
单元测试:
public class WhenUsingRestJobAdvertApiOfdemo extends CamelBlueprintTestSupport {
@Override
protected String getBlueprintDescriptor() {
return "OSGI-INF/blueprint/blueprint.xml";
}
@Override
protected String[] loadConfigAdminConfigurationFile() {
return new String[]{"src/test/resources/jobwebsite.connector.properties", "jobwebsite.connector"};
}
@Test
public void testRoute() throws Exception {
context.addRoutes(new MockServiceEndpoints());
JobRequest jobRequest = readJoData();
template.sendBody("direct:createjobIndemo", jobRequest);
String expectedBody = "<matched/>";
template.sendBodyAndHeader(expectedBody, "foo", "bar");
}
public JobRequest readJoData() throws IOException {
ObjectMapper mapper = new ObjectMapper();
JobRequest jobRequest = mapper.readValue(new File("src/test/resources/demo-data/job-Advert/job-123.json"), JobRequest.class);
return jobRequest; …
Run Code Online (Sandbox Code Playgroud)