<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>question about add external ojdbc jar in liferay 7.4 module</title>
  <link rel="self" href="https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=121216400" />
  <subtitle>question about add external ojdbc jar in liferay 7.4 module</subtitle>
  <id>https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=121216400</id>
  <updated>2026-04-25T19:52:53Z</updated>
  <dc:date>2026-04-25T19:52:53Z</dc:date>
  <entry>
    <title>RE: question about add external ojdbc jar in liferay 7.4 module</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121222282" />
    <author>
      <name>Scarletake Bwi</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121222282</id>
    <updated>2021-10-29T02:01:33Z</updated>
    <published>2021-10-29T02:01:17Z</published>
    <summary type="html">&lt;p&gt;after i modified service module's bnd.bnd, after
  &amp;quot;-dsannotations-options: inherit&amp;quot; add follows:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;
    &lt;code&gt;Import-Package: \&lt;br /&gt;   
       org.springframework.jdbc.datasource,\&lt;br /&gt;   
       com.liferay.portal.dao.jdbc.spring,\&lt;br /&gt;     *&lt;br /&gt;
      Liferay-Require-SchemaVersion: 1.0.0&lt;br /&gt; Liferay-Service:
      true&lt;br /&gt; Liferay-Spring-Context: META-INF/spring&lt;/code&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;it works.&lt;/p&gt;</summary>
    <dc:creator>Scarletake Bwi</dc:creator>
    <dc:date>2021-10-29T02:01:17Z</dc:date>
  </entry>
  <entry>
    <title>RE: RE: question about add external ojdbc jar in liferay 7.4 module</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121218516" />
    <author>
      <name>Scarletake Bwi</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121218516</id>
    <updated>2021-10-26T09:39:16Z</updated>
    <published>2021-10-26T09:39:15Z</published>
    <summary type="html">&lt;p&gt;Hi Antonio&lt;/p&gt;
&lt;p&gt;thank you. have a nice day.&lt;/p&gt;
&lt;p&gt;i put liferay-portal-database-all-in-one-support-1.2.1.jar
  in tomcat-9.0.43\webapps\ROOT\WEB-INF\lib, and put ojdbc8.jar in tomcat-9.0.43\webapps\ROOT\WEB-INF\shielded-container-lib&lt;/p&gt;
&lt;p&gt;but i still got ClassNotFoundException in Class.forName(&amp;quot;oracle.jdbc.OracleDriver&amp;quot;);&lt;/p&gt;
&lt;p&gt;my final goal is read external data via service builder(if the target
  is a database). and i tried both spring-bean and
  datasourceprovider. Unfortunately, they were all unable to succeed for
  different reasons.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</summary>
    <dc:creator>Scarletake Bwi</dc:creator>
    <dc:date>2021-10-26T09:39:15Z</dc:date>
  </entry>
  <entry>
    <title>RE: question about add external ojdbc jar in liferay 7.4 module</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121218382" />
    <author>
      <name>Antonio Musarra</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121218382</id>
    <updated>2021-10-26T07:31:53Z</updated>
    <published>2021-10-26T07:31:52Z</published>
    <summary type="html">&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;As I wrote in the updated documentation
  https://github.com/amusarra/liferay-portal-database-all-in-one-support ,
  the jdbc drivers for Liferay 7.4 GA3, must be placed in the
  webapps/ROOT/WEB-INF/shielded-container-lib folder.  In fact, if you
  see, inside it you will also find other jdbc drivers.&lt;/p&gt;
&lt;p&gt;In any case, it is preferable to use the service builder with the
  external database (see Liferay documentation).&lt;/p&gt;
&lt;p&gt;Antonio.&lt;/p&gt;</summary>
    <dc:creator>Antonio Musarra</dc:creator>
    <dc:date>2021-10-26T07:31:52Z</dc:date>
  </entry>
  <entry>
    <title>RE: RE: question about add external ojdbc jar in liferay 7.4 module</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121216988" />
    <author>
      <name>Scarletake Bwi</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121216988</id>
    <updated>2021-10-25T08:41:43Z</updated>
    <published>2021-10-25T08:41:42Z</published>
    <summary type="html">&lt;p&gt;hi Olaf&lt;/p&gt;
&lt;p&gt;thank you for reply, &lt;/p&gt;
&lt;p&gt;yes, i had checked &lt;em&gt;module.framework.system.packages.extra&lt;/em&gt; ,
  &amp;quot;oracle.jdbc&amp;quot; is already in the list as default.&lt;/p&gt;
&lt;p&gt;from tomcat-9.0.43\webapps\ROOT\WEB-INF\shielded-container-libportal-impl.jar\portal.properties&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;    module.framework.system.packages.extra=\&lt;br /&gt;        
    com.ibm.crypto.provider,\&lt;br /&gt;         com.ibm.db2.jcc,\&lt;br /&gt;    
        com.microsoft.sqlserver.jdbc,\&lt;br /&gt;        
    com.mysql.cj.jdbc,\&lt;br /&gt;         com.mysql.jdbc,\&lt;br /&gt;        
    com.p6spy.engine.spy,\&lt;br /&gt;        
    com.sun.security.auth.module,\&lt;br /&gt;        
    com.sybase.jdbc4.jdbc,\&lt;br /&gt;         oracle.jdbc,\&lt;br /&gt;        
    org.postgresql,\&lt;br /&gt;         org.hsqldb.jdbc,\&lt;br /&gt;        
    org.mariadb.jdbc,\&lt;br /&gt;         sun.misc,\&lt;br /&gt;        
    sun.net.util,\&lt;br /&gt;         sun.security.provider,\&lt;br /&gt;        
    \&lt;br /&gt;         #&lt;br /&gt;         # WebSocket Support&lt;br /&gt;        
    #&lt;br /&gt;         \&lt;br /&gt;         com.ibm.websphere.wsoc,\&lt;br /&gt;      
      io.undertow.websockets.jsr,\&lt;br /&gt;         javax.websocket,\&lt;br /&gt;
            javax.websocket.server,\&lt;br /&gt;        
    org.apache.tomcat.websocket.server,\&lt;br /&gt;         weblogic.websocket.tyrus&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;i am sorry, i thought image will make it mare clear&lt;/p&gt;
&lt;p&gt;my portlet&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;package com.ci.zt.portlet;&lt;/p&gt;
  &lt;p&gt;import com.ci.zt.constants.ZTestMVCPortletKeys;&lt;br /&gt; import com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet;&lt;/p&gt;
  &lt;p&gt;import java.io.IOException;&lt;br /&gt; import java.sql.Connection;&lt;br /&gt;
    import java.sql.ResultSet;&lt;br /&gt; import java.sql.Statement;&lt;/p&gt;
  &lt;p&gt;import javax.portlet.Portlet;&lt;br /&gt; import
    javax.portlet.PortletException;&lt;br /&gt; import
    javax.portlet.RenderRequest;&lt;br /&gt; import javax.portlet.RenderResponse;&lt;/p&gt;
  &lt;p&gt;import org.osgi.service.component.annotations.Component;&lt;/p&gt;
  &lt;p&gt;/**&lt;br /&gt;  * @author vic.chen&lt;br /&gt;  */&lt;br /&gt; @Component(&lt;br /&gt;   
     immediate = true,&lt;br /&gt;     property = {&lt;br /&gt;       
     &amp;quot;com.liferay.portlet.display-category=category.sample&amp;quot;,&lt;br /&gt;
          
     &amp;quot;com.liferay.portlet.header-portlet-css=/css/main.css&amp;quot;,&lt;br /&gt;
            &amp;quot;com.liferay.portlet.instanceable=true&amp;quot;,&lt;br /&gt;   
         &amp;quot;javax.portlet.display-name=ZTestMVC&amp;quot;,&lt;br /&gt;       
     &amp;quot;javax.portlet.init-param.template-path=/&amp;quot;,&lt;br /&gt;       
     &amp;quot;javax.portlet.init-param.view-template=/view.jsp&amp;quot;,&lt;br /&gt;
            &amp;quot;javax.portlet.name=&amp;quot; +
    ZTestMVCPortletKeys.ZTESTMVC,&lt;br /&gt;       
     &amp;quot;javax.portlet.resource-bundle=content.Language&amp;quot;,&lt;br /&gt;
          
     &amp;quot;javax.portlet.security-role-ref=power-user,user&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;     service = Portlet.class&lt;br /&gt; )&lt;br /&gt; public class
    ZTestMVCPortlet extends MVCPortlet {&lt;br /&gt;     &lt;br /&gt;   
     @Override&lt;br /&gt;     public void doView(RenderRequest renderRequest,
    RenderResponse renderResponse)&lt;br /&gt;             throws IOException,
    PortletException {&lt;br /&gt;         // TODO Auto-generated method
    stub&lt;br /&gt;         super.doView(renderRequest,
    renderResponse);&lt;br /&gt;         this.test();&lt;br /&gt;         &lt;br /&gt;     }&lt;/p&gt;
  &lt;p&gt;    &lt;br /&gt;     public void test() {&lt;br /&gt;         Statement stmt =
    null;&lt;br /&gt;         ResultSet rs = null;&lt;br /&gt;         try {&lt;br /&gt;
              Class.forName(&amp;quot;oracle.jdbc.OracleDriver&amp;quot;);&lt;br /&gt;
                Connection con =
    DriverManager.getConnection(&amp;quot;jdbc:oracle:thin:@testhost:1521:test&amp;quot;,
    &amp;quot;username&amp;quot;, &amp;quot;password&amp;quot;);&lt;br /&gt;             stmt
    = con.createStatement();&lt;br /&gt;             rs =
    stmt.executeQuery(MATERIAL_INFO(&amp;quot;100-72-5000-00&amp;quot;));&lt;br /&gt;
                while (rs.next()) {&lt;br /&gt;               
     System.out.println(rs.getString(&amp;quot;CHILD_PART_NUMBER&amp;quot;));&lt;br /&gt;
                }&lt;br /&gt;         } catch (Exception e) {&lt;br /&gt;           
     // TODO Auto-generated catch block&lt;br /&gt;           
     e.printStackTrace();&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;     &lt;br /&gt;
        public static String MATERIAL_INFO(String masterPartNumber)
    {&lt;br /&gt;         StringBuffer sql = new StringBuffer();&lt;br /&gt;       
     sql.append(&amp;quot;SELECT &amp;quot;);&lt;br /&gt;         sql.append(&amp;quot;
    ITEM.ITEM_NUMBER AS CHILD_PART_NUMBER &amp;quot;);&lt;br /&gt;       
     sql.append(&amp;quot;FROM AGILE.ITEM ITEM &amp;quot;);&lt;br /&gt;       
     sql.append(&amp;quot;WHERE 1=1 &amp;quot;);&lt;br /&gt;         sql.append(&amp;quot;
    AND ITEM.ITEM_NUMBER =
    '&amp;quot;).append(masterPartNumber).append(&amp;quot;'&amp;quot;);&lt;br /&gt;   
         return sql.toString();&lt;br /&gt;     }&lt;br /&gt;     &lt;br /&gt;     public
    static void main(String[] msg) {&lt;br /&gt;         ZTestMVCPortlet
    plm=new ZTestMVCPortlet();&lt;br /&gt;         plm.test();&lt;br /&gt;   
     }&lt;br /&gt;     &lt;br /&gt; }&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;my build.gradle&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;dependencies {&lt;br /&gt;     compileOnly group:
    &amp;quot;com.liferay.portal&amp;quot;, name: &amp;quot;release.portal.api&amp;quot;&lt;/p&gt;
  &lt;p&gt;    cssBuilder group: &amp;quot;com.liferay&amp;quot;, name:
    &amp;quot;com.liferay.css.builder&amp;quot;, version:
    &amp;quot;3.0.2&amp;quot;&lt;br /&gt;     runtime group:
    'com.oracle.database.jdbc', name: 'ojdbc8', version:
    '21.3.0.0'&lt;br /&gt;     &lt;br /&gt; }&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;again, thank you for reply&lt;/p&gt;</summary>
    <dc:creator>Scarletake Bwi</dc:creator>
    <dc:date>2021-10-25T08:41:42Z</dc:date>
  </entry>
  <entry>
    <title>RE: question about add external ojdbc jar in liferay 7.4 module</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121216773" />
    <author>
      <name>Olaf Kock</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121216773</id>
    <updated>2021-10-25T07:52:16Z</updated>
    <published>2021-10-25T07:52:15Z</published>
    <summary type="html">&lt;blockquote&gt;
  &lt;p&gt;supposly, after i put jar in tomcat/lib, whole server, i mean,
    include osgi, will get the jar. i do not even modify my build.gradle like&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;You're wrong about this: While tomcat makes those jars available to
  web application, there's no mandate that the classloader used by the
  webapp - specifically in the case of OSGi - has to make them available
  to applications. OSGi is there for &lt;em&gt;explicit&lt;/em&gt;​​​​​​​ dependency management.&lt;/p&gt;
&lt;p&gt;That being said, check
  &lt;em&gt;module.framework.system.packages.extra&lt;/em&gt; from &lt;a href="https://docs.liferay.com/portal/7.4-latest/propertiesdoc/portal.properties.html"&gt;portal.properties&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also, to be friendly for indexing, screenreaders, responsive UIs and
  mobile devices, code (or any text) should &lt;em&gt;never&lt;/em&gt; be posted as
  image. Last time I've checked, the java compiler didn't accept gif,
  png or jpg as input, so it's hard to reproduce anything from your post.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</summary>
    <dc:creator>Olaf Kock</dc:creator>
    <dc:date>2021-10-25T07:52:15Z</dc:date>
  </entry>
  <entry>
    <title>question about add external ojdbc jar in liferay 7.4 module</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121216399" />
    <author>
      <name>Scarletake Bwi</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121216399</id>
    <updated>2021-10-25T05:06:25Z</updated>
    <published>2021-10-25T05:06:24Z</published>
    <summary type="html">&lt;p&gt;hi &lt;/p&gt;
&lt;p&gt;base on article &lt;a
    href="https://liferay.dev/blogs/-/blogs/osgi-module-dependencies" target="_blank"&gt;osgi-module-dependencies&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;i download &lt;a
    href="https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8/21.3.0.0"
  target="_blank"&gt;ojdbc8-21.3.0.0.jar&lt;/a&gt;, and put it in liferay-ce-portal-7.4.2-ga3\tomcat-9.0.43\lib&lt;/p&gt;
&lt;p&gt;i create a mvc-module and modify the build.gradle&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;runtime group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.3.0.0'&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;i try use simple jdbc in my portlet, such like:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Class.forName(driver);&lt;br /&gt; DriverManager.getConnection(url,
    username, password);&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;
  &lt;img alt="" src="https://ci4.googleusercontent.com/proxy/_Ft8XAfI3oewjOpJa_C2p4VrMCnt7dj653-W5BGY9pcqUdYtyRq0MfAPfCWckh6r0YGiWY__lwMzLQGgEv4uFCOy3GqRp9WoNiiBnAsm6d47iAQVNeelnaShkyMhvj584cVuXPe4QtLXD3jtCdjxbSeNgLhdyTjvI8tZfA=s0-d-e1-ft#http:///documents/14/0/somplejdbc.png/79829df3-2a90-d640-0e9a-eb18259d9762?t=1635131335081&amp;amp;imagePreview=1" /&gt;
  &lt;img alt="image.gif" height="15"
    src="https://mail.google.com/mail/u/0?ui=2&amp;amp;ik=b773c37834&amp;amp;attid=0.1&amp;amp;permmsgid=msg-a:r8735738682908125239&amp;amp;view=fimg&amp;amp;fur=ip&amp;amp;sz=s0-l75-ft&amp;amp;attbid=ANGjdJ_u_m1eqZmoN_M7xgoaD34-oIgMq9wDU31YIpX32v03JFYLpUCOlOulrqpqHo41M3Wb0B2zva-2pzVYSceHE0yDCRgffpJLqAn8L2iUU4OwidISJKqTzaYY7SI&amp;amp;disp=emb&amp;amp;realattid=ii_kv638awd0" width="15" /&gt;
  &lt;img alt="" src="/documents/14/0/somplejdbc+%282%29.png/33f6d18c-42de-1457-87ac-496be32f19e5?t=1635137680426&amp;amp;imagePreview=1" /&gt;
  &lt;br /&gt;  &lt;/p&gt;
&lt;p&gt;it should work, but it doesn't.&lt;/p&gt;
&lt;p&gt;supposly, after i put jar in tomcat/lib, whole server, i mean,
  include osgi, will get the jar. i do not even modify my build.gradle like&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;runtime group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.3.0.0'&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;can anyone help, thank you very very much in advance.&lt;/p&gt;
&lt;p&gt;Another very strange thing, i add a main in my portlet, and debug as
  Java Application&lt;/p&gt;
&lt;p&gt;
  &lt;img alt="" src="/documents/14/0/debug+%281%29.png/79593a5a-2d58-bbcf-484e-56d9e7951153?t=1635137855017&amp;amp;imagePreview=1" /&gt;
  &lt;br /&gt;  &lt;/p&gt;
&lt;p&gt;it should not works, but it got connection and got resule.&lt;/p&gt;
&lt;p&gt;i am sure it use the jar in &amp;quot;Project and External
  Dependencies&amp;quot;, because after i remove it from build.gradle and
  sync, the jar in &amp;quot;Project and External Dependencies&amp;quot; is
  gone, and it cannot work.&lt;/p&gt;</summary>
    <dc:creator>Scarletake Bwi</dc:creator>
    <dc:date>2021-10-25T05:06:24Z</dc:date>
  </entry>
</feed>
