<?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>Using service builder with external data source in Liferay 7.4</title>
  <link rel="self" href="https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=121593527" />
  <subtitle>Using service builder with external data source in Liferay 7.4</subtitle>
  <id>https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=121593527</id>
  <updated>2026-06-11T20:57:08Z</updated>
  <dc:date>2026-06-11T20:57:08Z</dc:date>
  <entry>
    <title>RE: Using service builder with external data source in Liferay 7.4</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121619126" />
    <author>
      <name>Steve Weiss</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121619126</id>
    <updated>2022-12-21T14:21:18Z</updated>
    <published>2022-12-21T14:21:09Z</published>
    <summary type="html">&lt;p&gt;Sorry, I figured out the problem. I hadn't configured the
  DataSourceProviderImpl. Once I added that all was well. Thanks.&lt;/p&gt;</summary>
    <dc:creator>Steve Weiss</dc:creator>
    <dc:date>2022-12-21T14:21:09Z</dc:date>
  </entry>
  <entry>
    <title>RE: Using service builder with external data source in Liferay 7.4</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121618722" />
    <author>
      <name>Scarletake Bwi</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121618722</id>
    <updated>2022-12-21T08:44:44Z</updated>
    <published>2022-12-21T08:44:43Z</published>
    <summary type="html">&lt;p&gt;hi &lt;/p&gt;
&lt;p&gt;did you check the prefix of PERSON? for example, it should be XXX.PERSON.&lt;/p&gt;</summary>
    <dc:creator>Scarletake Bwi</dc:creator>
    <dc:date>2022-12-21T08:44:43Z</dc:date>
  </entry>
  <entry>
    <title>Using service builder with external data source in Liferay 7.4</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121593526" />
    <author>
      <name>Steve Weiss</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=121593526</id>
    <updated>2022-12-01T22:42:15Z</updated>
    <published>2022-12-01T21:02:39Z</published>
    <summary type="html">&lt;p&gt;I am trying to create a service builder application that will use
  pre-existing tables in an external database. I've set up service.xml
  with just one entity according to the documentation:&lt;/p&gt;
&lt;p&gt;&amp;lt;service-builder dependency-injector=&amp;quot;ds&amp;quot; package-path=&amp;quot;gov.nasa.hq.test209.service&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;  &amp;lt;namespace&amp;gt;R209&amp;lt;/namespace&amp;gt;&lt;/p&gt;
&lt;p&gt;  &amp;lt;entity local-service=&amp;quot;true&amp;quot; name=&amp;quot;Person&amp;quot;
  remote-service=&amp;quot;false&amp;quot; uuid=&amp;quot;false&amp;quot;
  data-source=&amp;quot;Report209DS&amp;quot;&lt;br /&gt;     table=&amp;quot;PERSON&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;    &amp;lt;column name=&amp;quot;personId&amp;quot;
  db-name=&amp;quot;PERSON_ID&amp;quot; primary=&amp;quot;true&amp;quot;
  type=&amp;quot;long&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;column name=&amp;quot;auid&amp;quot;
  db-name=&amp;quot;AUID&amp;quot; type=&amp;quot;String&amp;quot; /&amp;gt;&lt;br /&gt;    
  &amp;lt;column name=&amp;quot;firstName&amp;quot; db-name=&amp;quot;FIRST_NAME&amp;quot;
  type=&amp;quot;String&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;column
  name=&amp;quot;lastName&amp;quot; db-name=&amp;quot;LAST_NAME&amp;quot;
  type=&amp;quot;String&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;column
  name=&amp;quot;phone&amp;quot; db-name=&amp;quot;PHONE&amp;quot;
  type=&amp;quot;String&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;column
  name=&amp;quot;email&amp;quot; db-name=&amp;quot;EMAIL&amp;quot;
  type=&amp;quot;String&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;    &amp;lt;order by=&amp;quot;asc&amp;quot;&amp;gt;&lt;br /&gt;       &amp;lt;order-column
  name=&amp;quot;personId&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;/order&amp;gt;&lt;/p&gt;
&lt;p&gt;    &amp;lt;!-- Finder methods --&amp;gt;&lt;br /&gt;     &amp;lt;finder
  name=&amp;quot;lastName&amp;quot; return-type=&amp;quot;Collection&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;finder-column name=&amp;quot;lastName&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;/finder&amp;gt;&lt;/p&gt;
&lt;p&gt;    &amp;lt;finder name=&amp;quot;email&amp;quot;
  return-type=&amp;quot;Collection&amp;quot;&amp;gt;&lt;br /&gt;       &amp;lt;finder-column
  name=&amp;quot;email&amp;quot; /&amp;gt;&lt;br /&gt;     &amp;lt;/finder&amp;gt;&lt;/p&gt;
&lt;p&gt;  &amp;lt;/entity&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/service-builder&amp;gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The datasource is configured in both context.xml and ROOT.xml:&lt;/p&gt;
&lt;p&gt;    &amp;lt;Resource name=&amp;quot;jdbc/Report209DS&amp;quot;
  type=&amp;quot;javax.sql.DataSource&amp;quot;&lt;br /&gt;        
  driverClassName=&amp;quot;oracle.jdbc.OracleDriver&amp;quot;&lt;br /&gt;        
  url=&amp;quot;jdbc:oracle:thin:@127.0.0.1:1521:xe&amp;quot;
  username=&amp;quot;report209&amp;quot;&lt;br /&gt;        
  password=&amp;quot;report209&amp;quot; maxActive=&amp;quot;4&amp;quot;
  maxWait=&amp;quot;5000&amp;quot; maxIdle=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;  &lt;/p&gt;
&lt;p&gt;After generating the code and deploying the application, when I try
  to search for matching Person records, I get this error:&lt;/p&gt;
&lt;p&gt;Caused by: com.liferay.portal.kernel.log.LogSanitizerException:
  java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not
  exist_ [Sanitized]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1052)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:537)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:255)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:253)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:86)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:765)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:921)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1099)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3640)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1384)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3687)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1165)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
  ~[hikaricp.jar:?]&lt;br /&gt;     at
  com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
  ~[hikaricp.jar:?]&lt;br /&gt;     at
  org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57)
  ~[hibernate-core.jar:5.6.7.Final]&lt;br /&gt;     ... 131 more&lt;br /&gt; Caused
  by: com.liferay.portal.kernel.log.LogSanitizerException: Error : 942,
  Position : 203, Sql = select this_.PERSON_ID as person_id1_0_0_,
  this_.AUID as auid2_0_0_, this_.FIRST_NAME as first_name3_0_0_,
  this_.LAST_NAME as last_name4_0_0_, this_.PHONE as phone5_0_0_,
  this_.EMAIL as email6_0_0_ from PERSON this_ where this_.FIRST_NAME=:1
  , OriginalSql = select this_.PERSON_ID as person_id1_0_0_, this_.AUID
  as auid2_0_0_, this_.FIRST_NAME as first_name3_0_0_, this_.LAST_NAME
  as last_name4_0_0_, this_.PHONE as phone5_0_0_, this_.EMAIL as
  email6_0_0_ from PERSON this_ where this_.FIRST_NAME=?, Error Msg =
  ORA-00942: table or view does not exist_ [Sanitized]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1052)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:537)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:255)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:253)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:86)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:765)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:921)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1099)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3640)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1384)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3687)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1165)
  ~[ojdbc8.jar:18.3.0.0.0]&lt;br /&gt;     at
  com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
  ~[hikaricp.jar:?]&lt;br /&gt;     at
  com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
  ~[hikaricp.jar:?]&lt;br /&gt;     at
  org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57)
  ~[hibernate-core.jar:5.6.7.Final]&lt;br /&gt;     ... 131 more&lt;br /&gt;  &lt;/p&gt;
&lt;p&gt;When the application is deployed Liferay new tables are not created,
  so at that point it seems to recognize the external database. But when
  the code tries to connect I get the error above.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</summary>
    <dc:creator>Steve Weiss</dc:creator>
    <dc:date>2022-12-01T21:02:39Z</dc:date>
  </entry>
</feed>
