I'm back with more SmartTarget 2014 installation woes, and it seems that I'm 95% of the way home, but this isn't a game of horseshoes as we all know. :)

Lay of the Land

  • Server A hosts the CM
  • Server B hosts the the CD (standard HTTPUpload), SmartTarget Web Service, and the Presentation Server
  • Server C hosts Fredhopper and the Deployment Web Service (non-J2EE)

I can publish from the CM, and the Publishing Queue says "Successful". The CD logs show the package coming in, and the post-deploy transaction kicks off which successfully sends it over to Fredhopper. Fredhopper takes the package into its incoming folder, and begins processing. It's here that I run into issues. The log file located at c:\fredhopper\data\instances\SmartTargetIdx\log\qserver.log gives me a few interesting warnings and errors:

This appears three or so times:

Database 'directory:C:\fredhopper\bin\..\data\instances\SmartTargetIdx\data\bizman\db\default' not created, connection made to existing database instead.
java.sql.SQLWarning: Database 'directory:C:\fredhopper\bin\..\data\instances\SmartTargetIdx\data\bizman\db\default' not created, connection made to existing database instead.
at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(Unknown Source)
at org.apache.derby.iapi.error.SQLWarningFactory.newSQLWarning(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source)
at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

Then things appear to go really wrong:

Format current time.0 - Unexpected error : 
Format current time.0 - java.lang.NoClassDefFoundError: javax/mail/Message
at org.pentaho.di.trans.steps.scriptvalues_mod.ScriptValuesMod.addValues(ScriptValuesMod.java:248)
at org.pentaho.di.trans.steps.scriptvalues_mod.ScriptValuesMod.processRow(ScriptValuesMod.java:667)
at org.pentaho.di.trans.step.BaseStep.runStepThread(BaseStep.java:2889)
at org.pentaho.di.trans.steps.scriptvalues_mod.ScriptValuesMod.run(ScriptValuesMod.java:730)
Caused by: java.lang.ClassNotFoundException: javax.mail.Message
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
... 4 more

Before ultimately it looks like it dies here:

Write current time as TIMESTAMP - Transformation detected one or more steps with errors.
Write current time as TIMESTAMP - Errors detected!
Write current time as TIMESTAMP - Errors detected!
Write current time as TIMESTAMP - Transformation is killing the other steps!

The Kettle job doesn't even appear to fire, as the log file in c:\fredhopper\data\instances\etl\logs only updates when I manually trigger it to run.

Any assistance would be highly appreciated.

EDIT @ 12.07a 08/22: I'm including some screenshots of the various configurations that I have for ST. Feel free to request others. Additionally, I noticed that after one of my publishes an XML file representing my test component presentation made it into the /fas-xml-incremental/catalog01 folder; about ten minutes after I'd published. Networky timeouts are usually around 10 minutes, no?

Content Deployer configuration: content deployer configuration

Publication target configuration: Publication target configuration

smarttarget_conf.xml smarttarget_conf.xml

Proof that the Content Deployer is successfully pushing to Fredhopper (log file): Proof that the Content Deployer is successfully pushing to Fredhopper

  • 1
    Hi Rob, with regards "and I've configured the logging for it." is it possible to show the config for the logging? Commented Aug 21, 2014 at 18:14
  • Hi, @Dylan..MarkSaunders. I've updated my OP with screenshots and additional details. I've also had the opportunity to glance through another working instance to compare configuration files, and I can see no obvious differences (naturally). Let me know if there's other information you want to see! Commented Aug 22, 2014 at 5:13

1 Answer 1


I believe the problem is with running the "run-incremental.kjb" job (which is provided by Fredhopper) as it is not compatible with the SmartTarget data.

You should instead use the provided "STJob.kjb" file, by changing the KettleJobName configuration setting in smarttarget_conf.xml (on the deployer).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.