2017年4月12日 星期三

Oracle 11g RADIANS function

http://stackoverflow.com/questions/24937868/oracle-circle-distance-search-missing-results

http://www.liquibase.org/documentation/changes/create_procedure.html

Weblogic 11g + Oracle 11g + Spring boot

1. Reference project jar file path:

2. Hibernate Validation error:

(1) Create CustomPersistenceProviderResolver by implements PersistenceProviderResolver to ensure the PersistenceProviders which are or above JPA 2.0 will be loaded before default PersistenceProvider which Weblogic provided(such as Kodo and Toplink) . The content is mainly from the private class PersistenceProviderResolverPerClassLoader in PersistenceProviderResolverHolder. The loading sequence of PersistenceProvider will be

Hibernate -> Eclipse Link -> Kodo

(2) Explicitly assign CustomPersistenceProviderResolver  to PersistenceProviderResolverHolder
in entityManagerFactory() method under  DatabaseConfiguration as below:

PersistenceProviderResolverHolder.setPersistenceProviderResolver(new CustomPersistenceProviderResolver());

3. Weblogic 11g setting for JPA 2.0

(1) commEnv.cmd
-> Add classpath for javax.persistence_1.1.0.0_2-0.jar (Eclipse link ) & com.oracle.jpa2support_1.0.0.0_2-1.jar

echo eclipseLink
SET PRE_CLASSPATH=D:\dev\weblogic\weblogic11g\modules\javax.persistence_1.1.0.0_2-0.jar;D:\dev\weblogic\weblogic11g\modules\com.oracle.jpa2support_1.0.0.0_2-1.jar ?

-> Weblogic management console
 Change JPA adaptor type to Topdo

4. IllegalArgumentException in Tomcat

Caused by: java.lang.IllegalArgumentException: File [/D:/DevTools/weblogic/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/CMMAPP/WEB-INF/CMMBASE-0.0.1-SNAPSHOT.jar] referenced by given URL [file:/D:/DevTools/weblogic/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/CMMAPP/WEB-INF/CMMBASE-0.0.1-SNAPSHOT.jar] does not exist

Root cause: While using persistence.xml, reference project needs to be specifically assigned in persistence.xml.  However, the default path is different between Weblogic and Tomcat.

Below is the persistence.xml for Weblogic



             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">
 

    org.hibernate.jpa.HibernatePersistenceProvider
         CMMBASE-0.0.1-SNAPSHOT.jar
         
       
             
     
     
     
     
         
         
       
  



In Tomcat the same has to be 

 /WEB-INF/CMMBASE-0.0.1-SNAPSHOT.jar

5. Weblogic autodeploy

D:\dev\weblogic\weblogic11g\wlserver_10.3\samples\domains\wl_server\autodeploy

6. Weblogic 


7. In order to make Liquibase Maven command work do steps below

 (1) Add oracle JDBC driver into local Maven resposiroty
  
mvn install:install-file -Dfile=D:\dev\databases\sqldeveloper\jdbc\lib\ojdbc7.jar       -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0 -Dpackaging=jar

(2) Add oracle db profile for liquibase into pom.xml

(3) Run below command to drop all tables

mvn -P oracledev liquibase:dropAll

8. Oracle 11g

(1) Identifier such as "password", "code" can't be used as table or column name
(2) Identifier length has length restriction of 30