C:\jboss-as-7.1.1.Final\bin>standalone.bat -P=C:\jboss-as-7.1.1.Final\modules\xxxxx\xxxx.properties
-P or –properties, would load the specified properties into jboss system environment
See boot.log with above properties:
12:31:56,005 INFO [org.jboss.modules] JBoss Modules version 1.1.1.GA 12:31:56,137 INFO [org.jboss.msc] JBoss MSC version 1.0.2.GA 12:31:56,168 INFO [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting 12:31:56,170 DEBUG [org.jboss.as.config] Configured system properties: FPW.details.sql = SELECT xxxxxx awt.toolkit = sun.awt.windows.WToolkit camel.context.startonboot = true camel.scan.class.resolver = org.apache.camel.jboss.JBossPackageScanClassResolver java.net.preferIPv4Stack = true java.runtime.name = Java(TM) SE Runtime Environment java.runtime.version = 1.6.0_31-b05 java.specification.name = Java Platform API Specification java.specification.vendor = Sun Microsystems Inc. java.specification.version = 1.6 java.util.logging.manager = org.jboss.logmanager.LogManager java.vendor = Sun Microsystems Inc. java.vendor.url = http://java.sun.com/ java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi java.version = 1.6.0_31 java.vm.info = mixed mode java.vm.name = Java HotSpot(TM) 64-Bit Server VM java.vm.specification.name = Java Virtual Machine Specification java.vm.specification.vendor = Sun Microsystems Inc. java.vm.specification.version = 1.0 java.vm.vendor = Sun Microsystems Inc. java.vm.version = 20.6-b01 javax.management.builder.initial = org.jboss.as.jmx.PluggableMBeanServerBuilder javax.xml.datatype.DatatypeFactory = __redirected.__DatatypeFactory javax.xml.parsers.DocumentBuilderFactory = __redirected.__DocumentBuilderFactory javax.xml.parsers.SAXParserFactory = __redirected.__SAXParserFactory javax.xml.stream.XMLEventFactory = __redirected.__XMLEventFactory javax.xml.stream.XMLInputFactory = __redirected.__XMLInputFactory javax.xml.stream.XMLOutputFactory = __redirected.__XMLOutputFactory javax.xml.transform.TransformerFactory = __redirected.__TransformerFactory javax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema = __redirected.__SchemaFactory javax.xml.xpath.XPathFactory:http://java.sun.com/jaxp/xpath/dom = __redirected.__XPathFactory jboss.home.dir = C:\jboss-as-7.1.1.Final 12:31:56,231 DEBUG [org.jboss.as.config] VM Arguments: -XX:+TieredCompilation -Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MaxPermSize=256M -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=standalone.xml -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Dorg.jboss.boot.log.file=C:\jboss-as-7.1.1.Final\standalone\log\boot.log -Dlogging.configuration=file:C:\jboss-as-7.1.1.Final\standalone/configuration/logging.properties 12:31:56,874 INFO [org.xnio] XNIO Version 3.0.3.GA 12:31:56,874 INFO [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http) 12:31:56,882 INFO [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA 12:31:56,888 INFO [org.jboss.remoting] JBoss Remoting version 3.2.3.GA 12:31:56,956 INFO [org.jboss.as.security] JBAS013101: Activating Security Subsystem 12:31:56,969 INFO [org.jboss.as.webservices] JBAS015537: Activating WebServices Extension 12:31:56,983 INFO [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers 12:31:56,983 INFO [org.jboss.as.connector] JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final) 12:31:56,996 INFO [org.jboss.as.security] JBAS013100: Current PicketBox version=4.0.7.Final
Above properties are loaded into system properties and were from composerinterfacesmgr.properties.
However, if using above parameter alone, it still wont put the properties into classpath, so below spring application context configuration wont work:
<bean class="com.bfm.app.jmim.conf.Configurer"> <property name="locations"> <list> <value>classpath:xxxx.properties</value> </list> </property> </bean>
To resolve, as for current, the only solution is to create new modules, and put the properties inside the module, and specify to depend on this module in jboss-deployment-structure.xml: https://community.jboss.org/wiki/HowToPutAnExternalFileInTheClasspath
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1"> <deployment> <exclusions> <module name="org.apache.log4j" /> <module name="org.slf4j" /> <module name="org.slf4j.impl" /> <module name="org.slf4j.ext" /> <module name="org.slf4j.jcl-over-slf4j" /> <module name="org.apache.commons.logging" /> <module name="org.jboss.logging.jul-to-slf4j-stub" /> <module name="org.jboss.logging" /> <module name="org.jboss.as.logging" /> </exclusions> <dependencies> <module name="org.osgi.core" /> <module name="com.xxxx.xxxx" /> </dependencies> <!-- <resources> --> <!-- <resource-root path="xxxx.properties" /> --> <!-- </resources> --> </deployment> </jboss-deployment-structure>
With above two together, the application would work. If only create a module, and put the properties into classpath, it might not work either. For example, log4j.xml,
<appender name="emailAppender" class="org.apache.log4j.net.SMTPAppender"> <param name="Threshold" value="DEBUG"/> <param name="To" value="${smtp.error.recipient}" /> <param name="BufferSize" value="1" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%t] %c{2} (%F:%L) - %m%n" /> </layout> </appender>
Above requires a system property or at least the classloader of log4j aware of. So the first change, specify the -P / –properties needed to put that properties into system environment.
another solution is by specifying the configuration url
LikeLiked by 1 person