[JBoss JIRA] Created: (JBESB-2558) monitoring.cfg.xml not found
by Kevin Conner (JIRA)
monitoring.cfg.xml not found
-----------------------------
Key: JBESB-2558
URL: https://jira.jboss.org/jira/browse/JBESB-2558
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Management
Reporter: Kevin Conner
Fix For: 4.6
The configuration of the management services is currently broken, leaving an opportunity for the following exception to be thrown.
org.hibernate.HibernateException: monitoring.cfg.xml not found
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1405)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1427)
at org.jboss.soa.esb.monitoring.MonitoringSessionFactory.init(MonitoringSessionFactory.java:80)
at org.jboss.soa.esb.monitoring.MonitoringSessionFactory.getInstance(MonitoringSessionFactory.java:68)
at org.jboss.soa.esb.monitoring.client.OperationsCollector.getClassPatterns(OperationsCollector.java:84)
at org.jboss.soa.esb.monitoring.client.OperationsCollector.collectData(OperationsCollector.java:165)
at org.jboss.soa.esb.monitoring.client.OperationsCollectorAction.collectOperations(OperationsCollectorAction.java:72)
The reason for this issue is that the monitoring services specified in jbossesb.esb have an implicit dependency on a jar provided in management.esb but management.esb has an explicit dependency on jbossesb.esb. This will, therefore, leave a window where the management configuration may be required *before* the jar has been loaded.
The implicit dependency is caused by the requirement of jbossesb.esb/management-client.jar to access the monitoring.cfg.xml file included in management.esb/management-server.jar.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (JBESB-1851) JAXRConnectionFactory should not rely on System properties when creating a Connection
by Daniel Bevenius (JIRA)
JAXRConnectionFactory should not rely on System properties when creating a Connection
-------------------------------------------------------------------------------------
Key: JBESB-1851
URL: http://jira.jboss.com/jira/browse/JBESB-1851
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Examples, Registry and Repository
Reporter: Daniel Bevenius
The quickstarts that use the ServiceInvoker all seem to do this (atleast the ones that I've looked at) :
System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
Now, we have this property in the jbossesb-properties.xml as:
<property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
This property is read by JAXRConnectionFactory constructor and saved into a Properties object as:
props.setProperty("javax.xml.registry.factoryClass", Configuration.getRegistryFactoryClass());
The 'props' are set on the ConnectionFactory object that is created in the getConnection() method:
protected Connection getConnection()
{
Connection connection = null;
try
{ // Create the connection, passing it the configuration properties
ConnectionFactory factory = ConnectionFactory.newInstance();
factory.setProperties(props);
connection = factory.createConnection();
connection.setCredentials(creds);
} catch (JAXRException e) {
logger.log(Level.ERROR, "Could not set up a connection to the Registry. " + e.getMessage(), e);
}
return connection;
}
Here we can see that ConnectionFactory.newInstance() method will be called prior to the properties getting set on the factory, which is
natural. But the problem is that ConnectionFactory.newInstance() method looks like this:
private static final String SYS_PROP_NAME = "javax.xml.registry.ConnectionFactoryClass";
public static ConnectionFactory newInstance() throws JAXRException
{
String factoryName = null;
ConnectionFactory factory = null;
try
{
String defaultName = null;
factoryName = System.getProperty(SYS_PROP_NAME, defaultName);
ClassLoader loader =Thread.currentThread().getContextClassLoader();
Class factoryClass = loader.loadClass(factoryName);
factory = (ConnectionFactory) factoryClass.newInstance();
}
catch(Throwable e)
{
throw new JAXRException("Failed to create instance of:"+factoryName, e);
}
return factory;
}
We should not be relying on the system properties in order to do this.
Our JAXRConnectionFactory should be creating the factory directly and
not using ConnectionFactory, this is the real error IMO. If we do this
then we will not be affected by anyone else in the AS overriding JAXR.
Kev
See also this googlegroups thread for more background info: http://groups.google.se/group/jbossesb/browse_frm/thread/3a5ce28b4a0f6bca
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 2 months