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