5

I am installing, configuring and testing a new ST setup in a development box. On publishing of a SmartTarget enabled TBB the publish transaction fails in the "Committing Deployment" phase. The deployer log says there is something wrong in the communication with Fredhopper: unable to persist the fredhopper XML through the webservice

The Fredhopper indexer instance is running and I think the SmartTarget deployment web service is configured correctly. What could be amiss?

The full log:

[9/22/14 12:07:11:659 EEST] 0000030f SystemOut     O 12:07:11.659 [pool-1-thread-4] WARN  - com.tridion.deployer.phases.CommitPhase :: Failure during the post-transaction and the transaction will NOT be rolled-back
[9/22/14 12:07:11:660 EEST] 0000030f SystemOut     O 12:07:11.660 [pool-1-thread-4] ERROR - com.tridion.deployer.phases.DeployPipelineExecutor :: Unable to execute onSuccess event in phase: Deployment Commit Phase for transaction: tcm:0-2306-66560
[9/22/14 12:07:11:669 EEST] 0000030f SystemOut     O 12:07:11.669 [pool-1-thread-4] ERROR - com.tridion.deployer.phases.DeployPipelineExecutor :: Original stacktrace for transaction: tcm:0-2306-66560
com.tridion.deployer.ProcessingException: unable to persist the fredhopper XML through the webservice
        at com.tridion.smarttarget.deployer.fredhopper.WebserviceDeployer.deploy(WebserviceDeployer.java:50) ~[smarttarget_core.jar:na]
        at com.tridion.smarttarget.utils.SmartTargetXMLUtils.persistFredhopperXML(SmartTargetXMLUtils.java:176) ~[smarttarget_core.jar:na]
        at com.tridion.smarttarget.deployer.FredhopperOutputBuilder.persistFredhopperXML(FredhopperOutputBuilder.java:119) ~[smarttarget_core.jar:na]
        at com.tridion.smarttarget.deployer.FredhopperDeployerModule.process(FredhopperDeployerModule.java:76) ~[smarttarget_core.jar:na]
        at com.tridion.deployer.Processor.process(Processor.java:109) ~[cd_deployer.jar:na]
        at com.tridion.deployer.workers.ProcessorWorker.doWork(ProcessorWorker.java:77) ~[cd_deployer.jar:na]
        at com.tridion.deployer.phases.CommitPhase.onSuccess(CommitPhase.java:116) ~[cd_deployer.jar:na]
        at com.tridion.deployer.phases.DeployPipelineExecutor.runSafeEvent(DeployPipelineExecutor.java:240) [cd_deployer.jar:na]
        at com.tridion.deployer.phases.DeployPipelineExecutor.doExecute(DeployPipelineExecutor.java:101) [cd_deployer.jar:na]
        at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:64) [cd_deployer.jar:na]
        at com.tridion.deployer.TransactionManager.handleDeployPackage(TransactionManager.java:82) [cd_deployer.jar:na]
        at com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:180) [cd_deployer.jar:na]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:452) [na:1.6.0]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314) [na:1.6.0]
        at java.util.concurrent.FutureTask.run(FutureTask.java:149) [na:1.6.0]
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) [na:1.6.0]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) [na:1.6.0]
        at java.lang.Thread.run(Thread.java:769) [na:1.6.0]
Caused by: javax.xml.ws.soap.SOAPFaultException: java.lang.NullPointerException
        at org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.createSystemException(MethodMarshallerUtils.java:1326) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.demarshalFaultResponse(MethodMarshallerUtils.java:1052) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.marshaller.impl.alt.DocLitWrappedMethodMarshaller.demarshalFaultResponse(DocLitWrappedMethodMarshaller.java:671) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.getFaultResponse(JAXWSProxyHandler.java:597) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.createResponse(JAXWSProxyHandler.java:537) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:403) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:188) ~[org.apache.axis2.jar:na]
        at $Proxy423.deploy(Unknown Source) ~[na:na]
        at com.tridion.smarttarget.deployer.fredhopper.WebserviceDeployer.deploy(WebserviceDeployer.java:42) ~[smarttarget_core.jar:na]
        ... 17 common frames omitted
Caused by: java.lang.NullPointerException: null
        at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:892) ~[na:1.6.0]
        at org.apache.axis2.jaxws.message.databinding.JAXBUtils.getJAXBContext(JAXBUtils.java:330) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.datasource.jaxb.JAXBDSContext.getJAXBContext(JAXBDSContext.java:220) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.datasource.jaxb.JAXBDSContext.getJAXBContext(JAXBDSContext.java:161) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.datasource.jaxb.JAXBDSContext.marshal(JAXBDSContext.java:387) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.message.databinding.impl.JAXBBlockImpl._outputFromBO(JAXBBlockImpl.java:189) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.message.impl.BlockImpl.outputTo(BlockImpl.java:371) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.message.impl.BlockImpl.serialize(BlockImpl.java:295) ~[org.apache.axis2.jar:na]
        at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:781) ~[org.apache.axis2.jar:na]
        at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:967) ~[org.apache.axis2.jar:na]
        at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.serializeInternally(SOAPEnvelopeImpl.java:283) ~[org.apache.axis2.jar:na]
        at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:245) ~[org.apache.axis2.jar:na]
        at org.apache.axiom.om.impl.llom.OMSerializableImpl.serializeAndConsume(OMSerializableImpl.java:207) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:74) ~[org.apache.axis2.jar:na]
        at com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.writeMessage(SOAPOverHTTPSender.java:3309) ~[com.ibm.wsfp.main.jar:na]
        at com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.sendChunkedRequest(SOAPOverHTTPSender.java:879) ~[com.ibm.wsfp.main.jar:na]
        at com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.sendSOAPRequest(SOAPOverHTTPSender.java:798) ~[com.ibm.wsfp.main.jar:na]
        at com.ibm.ws.websvcs.transport.http.SOAPOverHTTPSender.send(SOAPOverHTTPSender.java:577) ~[com.ibm.wsfp.main.jar:na]
        at com.ibm.ws.websvcs.transport.http.HTTPTransportSender.invoke(HTTPTransportSender.java:366) ~[com.ibm.wsfp.main.jar:na]
        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:514) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.execute(AxisInvocationController.java:578) ~[na:na]
        at org.apache.axis2.jaxws.core.controller.impl.AxisInvocationController.doInvoke(AxisInvocationController.java:127) ~[na:na]
        at org.apache.axis2.jaxws.core.controller.impl.InvocationControllerImpl.invoke(InvocationControllerImpl.java:93) ~[na:na]
        at org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:390) ~[org.apache.axis2.jar:na]
        ... 20 common frames omitted
[9/22/14 12:07:11:670 EEST] 0000030f SystemOut     O 12:07:11.670 [pool-1-thread-4] INFO  - com.tridion.deployer.phases.DeployPipelineExecutor :: Transaction is completed: tcm:0-2306-66560

Update I think the CD deployer can reach the SmartTarget deployment web service. If I stop the ST deployment service I get a similar error message with a differnet cause. Instead of a java.lang.NullPointerException I get a java.io.FileNotFoundException. The SmartTarget Deployment web service does not log anything while it is in debug level and has full access to the log location and deployment folder.

The full log:

[9/22/14 14:32:40:932 EEST] 0000005a webcontainer  E com.ibm.ws.webcontainer.internal.WebContainer handleRequest SRVE0255E: A WebGroup/Virtual Host to handle /SmartTargetDeploymentWebService/SmartTargetDeploymentWebService/SmartTargetDeploymentWebService.wsdl has not been defined.
[9/22/14 14:32:40:983 EEST] 00000356 SystemOut     O 14:32:40.983 [pool-1-thread-2] WARN  - com.tridion.deployer.phases.CommitPhase :: Failure during the post-transaction and the transaction will NOT be rolled-back
[9/22/14 14:32:40:984 EEST] 00000356 SystemOut     O 14:32:40.984 [pool-1-thread-2] ERROR - com.tridion.deployer.phases.DeployPipelineExecutor :: Unable to execute onSuccess event in phase: Deployment Commit Phase for transaction: tcm:0-2314-66560
[9/22/14 14:32:40:989 EEST] 00000356 SystemOut     O 14:32:40.989 [pool-1-thread-2] ERROR - com.tridion.deployer.phases.DeployPipelineExecutor :: Original stacktrace for transaction: tcm:0-2314-66560
com.tridion.deployer.ProcessingException: unable to persist the fredhopper XML through the webservice
        at com.tridion.smarttarget.deployer.fredhopper.WebserviceDeployer.deploy(WebserviceDeployer.java:50) ~[smarttarget_core.jar:na]
        at com.tridion.smarttarget.utils.SmartTargetXMLUtils.persistFredhopperXML(SmartTargetXMLUtils.java:176) ~[smarttarget_core.jar:na]
        at com.tridion.smarttarget.deployer.FredhopperOutputBuilder.persistFredhopperXML(FredhopperOutputBuilder.java:119) ~[smarttarget_core.jar:na]
        at com.tridion.smarttarget.deployer.FredhopperDeployerModule.process(FredhopperDeployerModule.java:76) ~[smarttarget_core.jar:na]
        at com.tridion.deployer.Processor.process(Processor.java:109) ~[cd_deployer.jar:na]
        at com.tridion.deployer.workers.ProcessorWorker.doWork(ProcessorWorker.java:77) ~[cd_deployer.jar:na]
        at com.tridion.deployer.phases.CommitPhase.onSuccess(CommitPhase.java:116) ~[cd_deployer.jar:na]
        at com.tridion.deployer.phases.DeployPipelineExecutor.runSafeEvent(DeployPipelineExecutor.java:240) [cd_deployer.jar:na]
        at com.tridion.deployer.phases.DeployPipelineExecutor.doExecute(DeployPipelineExecutor.java:101) [cd_deployer.jar:na]
        at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:64) [cd_deployer.jar:na]
        at com.tridion.deployer.TransactionManager.handleDeployPackage(TransactionManager.java:82) [cd_deployer.jar:na]
        at com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:180) [cd_deployer.jar:na]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:452) [na:1.6.0]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314) [na:1.6.0]
        at java.util.concurrent.FutureTask.run(FutureTask.java:149) [na:1.6.0]
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) [na:1.6.0]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) [na:1.6.0]
        at java.lang.Thread.run(Thread.java:769) [na:1.6.0]
Caused by: javax.xml.ws.WebServiceException: The following WSDL exception occurred: WSDLException: faultCode=WSDL4JWrapper : : javax.wsdl.WSDLException: WSDLException: faultCode=WSDL4JWrapper : : java.io.FileNotFoundException: http://localhost:10039/SmartTargetDeploymentWebService/SmartTargetDeploymentWebService/SmartTargetDeploymentWebService.wsdl
        at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:173) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.setupWsdlDefinition(ServiceDescriptionImpl.java:1202) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.<init>(ServiceDescriptionImpl.java:249) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.<init>(ServiceDescriptionImpl.java:172) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:134) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:79) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.description.DescriptionFactory.createServiceDescription(DescriptionFactory.java:78) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.spi.ServiceDelegate.<init>(ServiceDelegate.java:218) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:83) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:79) ~[org.apache.axis2.jar:na]
        at javax.xml.ws.Service.<init>(Service.java:57) ~[na:na]
        at com.tridion.smarttarget.web.SmartTargetDeploymentWebService.<init>(SmartTargetDeploymentWebService.java:42) ~[smarttarget_core.jar:na]
        at com.tridion.smarttarget.deployer.fredhopper.WebserviceDeployer.deploy(WebserviceDeployer.java:38) ~[smarttarget_core.jar:na]
        ... 17 common frames omitted
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=WSDL4JWrapper : : javax.wsdl.WSDLException: WSDLException: faultCode=WSDL4JWrapper : : java.io.FileNotFoundException: http://localhost:10039/SmartTargetDeploymentWebService/SmartTargetDeploymentWebService/SmartTargetDeploymentWebService.wsdl
        at org.apache.axis2.jaxws.util.WSDL4JWrapper.commonPartsURLConstructor(WSDL4JWrapper.java:234) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.util.WSDL4JWrapper.<init>(WSDL4JWrapper.java:156) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.description.impl.ServiceDescriptionImpl.setupWsdlDefinition(ServiceDescriptionImpl.java:1182) ~[org.apache.axis2.jar:na]
        ... 28 common frames omitted
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=WSDL4JWrapper : : java.io.FileNotFoundException: http://localhost:10039/SmartTargetDeploymentWebService/SmartTargetDeploymentWebService/SmartTargetDeploymentWebService.wsdl
        at org.apache.axis2.jaxws.util.WSDL4JWrapper.commonPartsURLConstructor(WSDL4JWrapper.java:203) ~[org.apache.axis2.jar:na]
        ... 30 common frames omitted
Caused by: java.io.FileNotFoundException: http://localhost:10039/SmartTargetDeploymentWebService/SmartTargetDeploymentWebService/SmartTargetDeploymentWebService.wsdl
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1444) ~[na:1.6.0]
        at org.apache.axis2.jaxws.util.WSDL4JWrapper$14.run(WSDL4JWrapper.java:974) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.java.security.AccessController.doPrivileged(AccessController.java:132) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.util.WSDL4JWrapper.getInputStream(WSDL4JWrapper.java:971) ~[org.apache.axis2.jar:na]
        at org.apache.axis2.jaxws.util.WSDL4JWrapper.commonPartsURLConstructor(WSDL4JWrapper.java:189) ~[org.apache.axis2.jar:na]
        ... 30 common frames omitted

Update 2

Using the J2EE version of the SmartTarget Deployment Web Service on IBM Websphere Application Server 8.0.0.3

  • For now I omitted the SmartTarget deployment web service by deploying the Fredhopper files to the local file system... – Jan H Sep 22 '14 at 13:51
3

The error message is pretty clear, but the cause isn't. It could be:

  • You have configured the wrong URL for the deployment web service.
  • A firewall is blocking the connection.
  • The configuration used by the deployment web service is invalid.
  • The user running the web service is not allowed to write to the configured deployment directory.
  • etc.

To find the real cause, you will probably need to look at the log file generated by the deployment web service. The one you posted is from the SmartTarget deployer extension (the caller).

  • The deployer can contact the SmartTarget deployment web service. Could the NullPointerException hint on something going wrong in the deployer extension itself? (see updated question) – Jan H Sep 22 '14 at 11:51
  • I wouldn't rule anything out, but it seems to me that the response from the web service is not a valid SOAP message - and the null pointer is due to not finding the error in the result (because it's not SOAP). But that is a theory. You'd need to monitor the request/response using a network monitoring tool to find out more -- or look at the log files from your web application server for hints. – Peter Kjaer Sep 29 '14 at 9:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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