Hi Craig!

Those are additional properties which are _not_ passed in to 
EntityManagerFactore.createEM(String, Map) ?

From the stacktrace it looks like you run some unit test, right?
Do you do this via Maven or your IDE?

The -D you set should imo work. We use the same within OpenJPA itself.
But it might happen that it doesn't get propagated to your java process?

Can you probably check your System.properties in the debugger, just to see 
whether this properly gets propagated?


If you run it via Maven than you might probably tell the maven-surefire-plugin 
to set it.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${maven.surefire.version}</version>
    <configuration>
        <systemProperties>
          <property>
              <name>openjpa.ConnectionURL</name>
              <value>${connection.url}</value> 
          </property>
...

LieGrue,
strub


> Am 17.05.2017 um 02:51 schrieb Craig Russell <[email protected]>:
> 
> Hi,
> 
> I've got an implementation of a plugin Broker that uses an underlying jdbc 
> connection via the dbcp implementation.
> 
> I need to pass a property to the DriverManager.getConnection(String url, 
> Properties props) method.
> 
> I've looked for how a special property can be configured and I'm stuck. I'm 
> passing the URL via a variable on the command line. 
> -Dopenjpa.ConnectionURL="jdbc:mysql://localhost:13021/test" Maybe there is a 
> way to pass extra connection properties either via command line or via the 
> broker?
> 
> Any ideas?
> 
> Thanks,
> 
> Craig
> 
> <openjpa-2.2.2-r422266:1468616 nonfatal general error> 
> org.apache.openjpa.persistence.PersistenceException: There were errors 
> initializing your configuration: <openjpa-2.2.2-r422266:1468616 fatal user 
> error> org.apache.openjpa.util.UserException: A connection could not be 
> obtained for driver class "com.mysql.jdbc.Driver" and URL 
> "jdbc:mysql://localhost:13021/test".  You may have specified an invalid URL.
>       at 
> org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:255)
>       at 
> org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:241)
>       at 
> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:733)
>       at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at 
> org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:306)
>       at 
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1670)
>       at 
> org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:652)
>       at 
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:203)
>       at 
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
>       at 
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)
>       at 
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:154)
>       at 
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60)
>       at 
> com.mysql.clusterj.jpatest.SingleEMTestCase.setUp(SingleEMTestCase.java:42)
>       at 
> com.mysql.clusterj.jpatest.SingleEMFTestCase.setUp(SingleEMFTestCase.java:55)
>       at 
> com.mysql.clusterj.jpatest.SingleEMTestCase.setUp(SingleEMTestCase.java:35)
>       at junit.framework.TestCase.run(TestCase.java:52)
>       at 
> com.mysql.clusterj.jpatest.PersistenceTestCase.run(PersistenceTestCase.java:104)
>       at junit.framework.TestSuite.run(TestSuite.java:125)
>       at junit.textui.TestRunner.run(TestRunner.java:46)
>       at testsuite.clusterj.AllTests.main(AllTests.java:150)
> Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create 
> PoolableConnectionFactory (Communications link failure
> 
> The last packet successfully received from the server was 206 milliseconds 
> ago.  The last packet sent successfully to the server was 199 milliseconds 
> ago.)
>       at 
> org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
>       at 
> org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
>       at 
> org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
>       at 
> org.apache.openjpa.jdbc.schema.DBCPDriverDataSource.getDBCPConnection(DBCPDriverDataSource.java:74)
>       at 
> org.apache.openjpa.jdbc.schema.AutoDriverDataSource.getConnection(AutoDriverDataSource.java:42)
>       at 
> org.apache.openjpa.jdbc.schema.SimpleDriverDataSource.getConnection(SimpleDriverDataSource.java:76)
>       at 
> org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:118)
>       at 
> org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:93)
>       at 
> org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:233)
>       ... 20 more
> Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: 
> Communications link failure
> 
> The last packet successfully received from the server was 206 milliseconds 
> ago.  The last packet sent successfully to the server was 199 milliseconds 
> ago.
>       at sun.reflect.GeneratedConstructorAccessor46.newInstance(Unknown 
> Source)
>       at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>       at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
>       at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
>       at 
> com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989)
>       at 
> com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:175)
>       at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4901)
>       at 
> com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659)
>       at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226)
>       at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2194)
>       at 
> com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2225)
>       at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024)
>       at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:779)
>       at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
>       at sun.reflect.GeneratedConstructorAccessor38.newInstance(Unknown 
> Source)
>       at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>       at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
>       at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
>       at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
>       at 
> com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
>       at 
> org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
>       at 
> org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
>       at 
> org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
>       at 
> org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
>       ... 28 more
> Caused by: javax.net.ssl.SSLException: Server selected improper ciphersuite 
> SSL_RSA_WITH_RC4_128_MD5
>       at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
>       at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1916)
>       at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:279)
>       at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:269)
>       at 
> sun.security.ssl.ClientHandshaker.serverHello(ClientHandshaker.java:531)
>       at 
> sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:203)
>       at sun.security.ssl.Handshaker.processLoop(Handshaker.java:913)
>       at sun.security.ssl.Handshaker.process_record(Handshaker.java:849)
>       at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1035)
>       at 
> sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1344)
>       at 
> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)
>       at 
> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
>       at 
> com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:160)
>       ... 46 more
> 
>       at 
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:218)
>       at 
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
>       at 
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)
>       at 
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:154)
>       at 
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60)
>       at 
> com.mysql.clusterj.jpatest.SingleEMTestCase.setUp(SingleEMTestCase.java:42)
>       at 
> com.mysql.clusterj.jpatest.SingleEMFTestCase.setUp(SingleEMFTestCase.java:55)
>       at 
> com.mysql.clusterj.jpatest.SingleEMTestCase.setUp(SingleEMTestCase.java:35)
>       at junit.framework.TestCase.run(TestCase.java:52)
>       at 
> com.mysql.clusterj.jpatest.PersistenceTestCase.run(PersistenceTestCase.java:104)
>       at junit.framework.TestSuite.run(TestSuite.java:125)
>       at junit.textui.TestRunner.run(TestRunner.java:46)
>       at testsuite.clusterj.AllTests.main(AllTests.java:150)
> Craig L Russell
> [email protected]
> 

Reply via email to