在jboss 4中,我们使用dom4j SAX解析器来读取server.xml。它工作正常,但在JBoss EAP 6的情况下它不起作用。.Below是jboss 4中使用的代码
public static Document modifyAttributeValue(Document document, String elementName, String attributeName, String attributeValue) {
if (document == null)
return document;
try {
Element element = (Element) document.selectSingleNode(elementName);
if (element != null) {
Attribute attribute = element.attribute(attributeName);
attribute.setValue(attributeValue);
}
} catch (Exception e) {
logger.error("Failed to modify attribute.", e);
}
return document;
}
我将元素视为空值。
答案 0 :(得分:2)
拉杰什,
正如eis早先指出的那样,JBoss EAP 6.x基于JBoss AS 7.x代码库,与早期版本(JBoss AS 4.x,5.x,6.x,JBoss EAP)有很大不同5.x的)
在server.xml
中定义的端口不再像以前的版本那样定义,而是在JBOSS_HOME/standalone/configuration/standalone.xml
中定义。
尝试使用Eclipse(或您喜欢的IDE)调试代码,放置几个断点并逐行执行代码。看看为什么你得到NULL,我的猜测是你传递的文件是NULL
,因此你的modifyAttributeValue()
方法也会返回NULL
。
现在,如果您想以编程方式更改端口,则几乎没有不同的方法可以实现。
最简单的方法是使用JBoss CLI(本机接口):
JBOSS_HOME/bin/jboss-cli.sh --connect
/socket-binding-group=standard-sockets/socket-binding=http:write-attribute(name=port,value=8081)
希望有所帮助。