嵌入jetty maven profile.xml
我尝试以嵌入式形式启动 jetty 但遇到问题,
我需要在嵌入式 jetty 启动之前读取 profile.xml 中的属性值。
有什么建议吗?
这是profile.xml的内容
.....
<profile>
<id>local-dev</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<!-- Common Security Framework Properties -->
<security.context.file>applicationContext-security-csf.xml</security.context.file>
<csf.jndi.name>jdbc/securityDS</csf.jndi.name>
<csf.security.system.admin.roleId>884</csf.security.system.admin.roleId>
<csf.cas.url>tkvwasa01.secure.kodcu.com</csf.cas.url>
<application.service.url>localhost:8080/pqis-admin</application.service.url>
</properties>
</profile>
在maven端我可以像
mvn jetty:run local-dev
一样激活上面的配置文件(local-dev) ,但是当我使用嵌入式Jetty时如何激活上面的配置文件(local-dev)?
嵌入式 Jetty 的代码:
public class Start {
public static void main(String[] args) throws Exception {
Server server = new Server();
SocketConnector connector = new SocketConnector();
// Set some timeout options to make debugging easier.
connector.setMaxIdleTime(1000 * 60 * 60);
connector.setSoLingerTime(-1);
connector.setPort(8080);
server.setConnectors(new Connector[] { connector });
WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/");
bb.setWar("src/main/webapp");
.....
}
}
谢谢。
I try to start jetty in embedded form but i have problems
I need to read properties values in profile.xml before embedded jetty starts.
Any suggestions ?
Here is profile.xml's content
.....
<profile>
<id>local-dev</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<!-- Common Security Framework Properties -->
<security.context.file>applicationContext-security-csf.xml</security.context.file>
<csf.jndi.name>jdbc/securityDS</csf.jndi.name>
<csf.security.system.admin.roleId>884</csf.security.system.admin.roleId>
<csf.cas.url>tkvwasa01.secure.kodcu.com</csf.cas.url>
<application.service.url>localhost:8080/pqis-admin</application.service.url>
</properties>
</profile>
At maven side i can activate above profile (local-dev) like
mvn jetty:run local-dev
but how can i activate above profile (local-dev) when i use Embedded Jetty ?
Embedded Jetty 's code :
public class Start {
public static void main(String[] args) throws Exception {
Server server = new Server();
SocketConnector connector = new SocketConnector();
// Set some timeout options to make debugging easier.
connector.setMaxIdleTime(1000 * 60 * 60);
connector.setSoLingerTime(-1);
connector.setPort(8080);
server.setConnectors(new Connector[] { connector });
WebAppContext bb = new WebAppContext();
bb.setServer(server);
bb.setContextPath("/");
bb.setWar("src/main/webapp");
.....
}
}
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该配置文件默认处于活动状态吗?另一个配置文件是否处于活动状态?如果另一个配置文件处于活动状态,则默认处于活动状态的配置文件将被禁用。
[编辑]
嗯,文档 指出您可以使用 -P 选项从命令行激活配置文件:
但是,POM 属性不打算在运行时使用,而是在构建时使用。例如,您可以使用这些属性来过滤资源(XML/.properties 配置文件),用属性值替换占位符标记。然后,运行构建的应用程序。
Is this profile active by default? Is another profile active? An active-by-default profile will be disabled if another profile is active.
[edited]
Well, the documentation states that you can activate profiles from the command line using the -P option:
But, POM properties are not intended to be used in runtime, but in build time. You could, for example, use these properties to filter resources (XML/.properties config files), replacing placeholder tokens with the properties' values. And then, run the built application.