Tag: docker

有没有maven睡眠function?

我有maven配置文件集用于测试在预集成测试中,maven启动两个jetty服务器,然后开始测试。 我偶然发现的问题是在服务器中,测试开始时它们没有完全加载。 似乎通过在测试中添加5秒的睡眠时间来解决问题,但我希望将其添加到maven中并从测试中删除。 无论如何我能做到吗? 请查看下面的代码示例以获取更多信息 org.apache.maven.plugins maven-dependency-plugin 2.7 copy compile copy com.work.projectname projectname-web ${project.version} war projectname-${project.version}.war com.work.projectname projectname-stubs-web ${project.version} war projectname-stubs-${project.version}.war ${project.build.directory} false true org.apache.maven.plugins maven-surefire-plugin 2.16 true org.mortbay.jetty jetty-maven-plugin ${jetty-server.version} start-projectname pre-integration-test deploy-war true manual ${project.build.directory}/projectname-${project.version}.war ${basedir}/src/jetty/jetty-loginService.xml /projectname true ${project.build.directory}/tmp-projectname 8006 STOP start-projectname-stubs pre-integration-test deploy-war true manual ${project.build.directory}/projectname-stubs-${project.version}.war ${stub-jetty-server.port} 300000 8008 STOP stop-projectname post-integration-test […]

Jetty Classpath问题

我目前正在运行Solr,它是随附的Jetty容器。 从命令行运行时,它可以正常运行: java -jar start.jar 当我和start.jar在同一目录下时。 不幸的是,我需要能够从任何目录启动jetty,而不仅仅是包含start.jar的目录。 我尝试了很多选项,例如: java -Dsolr.solr.home=~/solr/ -Djetty.home=~/solr/ -Djetty.logs=~/solr/logs/ -cp ~/solr/start.jar:~/solr/lib/jetty-util-6.1.26-patched-JETTY-1340.jar:~/solr/lib/jetty-6.1.26-patched-JETTY-1340.jar:~/solr/lib/servlet-api-2.5-20081211.jar -jar ~/solr/start.jar ~/solr/etc/jetty.xml 每次我得到这个回溯: java.lang.ClassNotFoundException: org.mortbay.xml.XmlConfiguration at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at org.mortbay.start.Main.invokeMain(Main.java:179) at org.mortbay.start.Main.start(Main.java:534) at org.mortbay.start.Main.start(Main.java:441) at org.mortbay.start.Main.main(Main.java:119)

使用嵌入式jetty服务器运行Web应用程序(WAR)

我做了一个非常基本的Web应用程序,只有一个html页面。 我把它作为战争出口了。 现在我创建了一个嵌入式jetty服务器。 public class SimplestServer { public static void main(String[] args) throws Exception{ Server server = new Server(8000); WebAppContext webapp = new WebAppContext(); webapp.setContextPath(“/”); webapp.setWar(“C:\\Users\\User\\Desktop\\jetty\\JettyWar.war”); server.setHandler(webapp); server.start(); server.join(); } } 我为这个嵌入式服务器创建了一个jar。 但是当我尝试通过嵌入式服务器运行我的Web应用程序时,我收到以下错误。 C:\ Users \ User> java -jar C:\ Users \ User \ Desktop \ jetty \ webServer.jar C:\ Users \ User> java -jar […]

如果Jetty的密钥库中有多个证书,它如何选择?

我们的系统中有一些代码用于自动生成自签名证书到密钥存储区,然后由Jetty使用。 如果给定主机的密钥已经存在,则没有任何反应,但如果它不存在,我们会生成一个新密钥,如下所示: public void generateKey(String commonName) { X500Name x500Name = new X500Name(“CN=” + commonName); CertAndKeyGen keyPair = new CertAndKeyGen(“DSA”, “SHA1withDSA”); keyPair.generate(1024); PrivateKey privateKey = keyPair.getPrivateKey(); X509Certificate certificate = keyPair.getSelfCertificate(x500Name, 20*365*24*60*60); Certificate[] chain = { certificate }; keyStore.setEntry(commonName, privateKey, “secret”.toCharArray(), chain); } 只要密钥库中只有一个密钥和证书,这一切都可以正常工作。 一旦你有多个密钥,当你尝试连接时会发生奇怪的事情: java.io.IOException: HTTPS hostname wrong: should be 这是一个非常神秘的错误,但我终于设法通过编写连接到服务器的unit testing来跟踪它,并断言证书上的CN与主机名匹配。 我发现的很有趣 – Jetty似乎随意选择向客户提供哪种证书,但是以一致的方式。 例如: […]

maven依赖关系和手动添加WEB-INF / lib中的jar之间的区别

我是编程Web应用程序的新手,到目前为止,我正在使用带有Jetty服务器的eclipse / maven-setup来开发java web应用程序。 然而,我不明白的一件事是包括外部jar子的动态。 许多教程和SO上的Q&A声称它足以将jar添加到WEB-INF / lib。 其他解释我如何在pom.xml中将它们作为依赖项添加。 我发现有时第一个解决方案有效,有时我还需要添加依赖项。 我不知道为什么会这样。 此外,在添加依赖项时,我已手动将外部.jars复制到与已经存在的存储库资源匹配的文件夹中。 我无法相信这是正确的做法,但它一直在为我而努力。 所以我的问题是: 我是否正确,jar子需要双重引用,或者我是否正在解决可能的其他问题? 两种导入/引用方法有什么区别? 奖金问题:为什么以下错误会出现在日食中? 这些是指我在pom.xml中标记为依赖项的所有jar。 Web应用程序应该运行,尽管在一段时间后看似随机的不同运行时错误。 重启服务器此刻修复了它。 Description Resource Path Location Type Missing artifact standard:standard:jar:1.1.2 pom.xml /WebApp line 1 Maven Dependency Problem Missing artifact jstl:jstl:jar:1.2 pom.xml /WebApp line 1 Maven Dependency Problem Missing artifact junit:junit:jar:4.8.2 pom.xml /WebApp line 1 Maven Dependency Problem […]

嵌入式Jetty 8热部署类(使用Maven)

我定义了一个标准的Maven webapp结构,它使用Spring MVC。 我正在使用嵌入式Jetty服务器(java类)来测试开发中的应用程序。 用于创建Jetty服务器的代码概述如下。 如果我对任何JSP文件进行更改,则更改会立即在浏览器中显示。 但是,如果我更改任何类文件,例如控制器,更改不会热部署? 我该怎么办才能让它发挥作用? 我搜索了这个,我想我需要使用类org.eclipse.jetty.util.Scanner ,特别是setScanInterval方法,但不知道如何连接它? 以下是创建服务器的代码 String webAppDir = “src/main/webapp/”; Server server = new Server(8080); WebAppContext webApp = new WebAppContext(); webApp.setContextPath(“/”); webApp.setDescriptor(webAppDir + “/WEB-INF/web.xml”); webApp.setResourceBase(webAppDir); webApp.setParentLoaderPriority(true); HandlerCollection hc = new HandlerCollection(); ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection(); hc.setHandlers(new Handler[] { contextHandlerCollection }); hc.addHandler(webApp); server.setHandler(hc); return server; 提前致谢

使用CXF,Jetty和Spring的Web服务

我尝试使用CXF,Jetty和Spring创建简单的Web服务。 我创建服务接口 @WebService public interface AnonymousService { @WebMethod public String getVersion(); } 及其实施 @Service(“anonymousService”) @WebService( serviceName = “AnonymousService”, targetNamespace = “http://ws.test/”, endpointInterface = “test.ws.AnonymousService” ) public class AnonymousServiceImpl { public String getVersion() { return “Version”; } } 下一步我添加到Spring上下文配置文件端点声明 并配置Jetty bean <!—-> 不幸的是,当我启动应用程序时,我得到了跟踪堆栈跟踪 25.09.2010 14:48:07 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass INFO: Creating Service {http://ws.test/}AnonymousService from class name.krestjaninoff.application.interfaces.AnonymousService Exception in […]

在Jetty9 WebAppContexts之间实现SSO

我正在开发的Jetty 9应用程序自动扫描一组JarFiles for web.xml,然后以编程方式将包含的webapps导入为WebAppContexts。 我需要在各个Web应用程序之间实现单点登录,如以下Jetty 6教程中所述: http : //docs.codehaus.org/display/JETTY/Single+Sign+On+-+Jetty+HashSSORealm 。 不幸的是,HashSSORealm似乎已从Jetty中移除。 有没有可行的替代方案来实施简单的SSO? 我确实发现这篇文章推荐了Fediz jetty插件,但是如果存在这样的话,我更愿意使用本机docker解决方案: http : //dev.eclipse.org/mhonarc/lists/jetty-users/msg03176.html 更多信息: 核心问题似乎是每个WebAppContext都必须有自己的SessionManager,这使得即使使用相同的cookie,WebAppContexts也无法相互共享信息。

嵌入docker服务器问题

我正在努力将jetty服务器嵌入到java应用程序中。 我使用spring来配置实际的对象,我可以构建webapp没有问题 – 但是我在启动服务器时遇到了这个问题…… 0 [main] INFO test.Server – Starting server in ‘c:/workspace/test/war/’ on port 9090 34615 [main] INFO test.Server – Using resource base: src/main/webapp 34615 [main] INFO test.Server – Using descriptor file: src/main/webapp/WEB-INF/web.xml 2011-09-05 12:29:36.961:INFO::Logging to STDERR via org.mortbay.log.StdErrLog 36344 [main] INFO test.Server – Starting Server! 2011-09-05 12:29:37.023:INFO::jetty-6.1H.22 2011-09-05 12:29:37.039:WARN::Failed startup of context org.mortbay.jetty.webapp.WebAppContext@8ab708{/TestServer,file:/C:/workspace/test/war/src/main/webapp/} […]

在两个Web应用程序之间共享实例时Maven Jetty插件OutOfMemoryError

我正在使用maven jetty插件来运行我的两个Web应用程序。 一个Web应用程序是spring mvc UI,另一个是RESTful Web应用程序。 当我运行两个单独的mvn jetty时,我能够让两个Web应用程序进行通信:运行实例并分配不同的端口。 我已使用下面的maven pom.xml配置使用相同的端口在同一个jetty实例中成功部署。 我最终得到一个ava.lang.OutOfMemoryError:PermGen空间错误。 对此最好的解决方法是什么? org.mortbay.jetty jetty-maven-plugin 7.6.8.v20121106 -Xmx2024m -Xms2024m 10 / ../../api/target/main-api.war /test