cq5 - CQ Form Action to POST Outside CQ -
i'm helping build site in cq have requirement allow authors create forms standard form components post info external system. discovered documentation detailing how create custom form actions, , i've created forward.jsp i'm trying forwards request external system. seems however, cq wants interpret url internal path , gives me error. didn't see in javadoc or documentation lead me want. i'm afraid may end having create servlet in cq, forwards that, , post external site in servlet. has here had luck doing want or know if it's possible?
forward.jsp:
<%@ page session="false" %> <%@ page import="com.day.cq.wcm.foundation.forms.formshelper" %> <%@ taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0" %> <sling:defineobjects/> <% formshelper.setforwardpath(slingrequest, "http://localhost:8080/rest/foo", true); %>
exception i'm getting:
17.06.2014 16:22:31.475 *warn* [0:0:0:0:0:0:0:1 [1403047349971] post /content/aau/en/form-test.html http/1.1] com.day.cq.security.impl.cqusermanagerimpl not resolve authorizable: failure accessing repository: invalid path:/http://localhost:8080/rest/foo 17.06.2014 16:22:31.476 *error* [0:0:0:0:0:0:0:1 [1403047349971] post /content/aau/en/form-test.html http/1.1] org.apache.sling.servlets.post.impl.operations.modifyoperation exception during response processing. javax.jcr.repositoryexception: wrong workspace. expecting /http. received crx.default @ org.apache.sling.servlets.post.abstractpostoperation.removeandvalidateworkspace(abstractpostoperation.java:222) @ org.apache.sling.servlets.post.abstractpostoperation.run(abstractpostoperation.java:78) @ org.apache.sling.servlets.post.impl.slingpostservlet.dopost(slingpostservlet.java:202) @ org.apache.sling.api.servlets.slingallmethodsservlet.mayservice(slingallmethodsservlet.java:148) @ org.apache.sling.api.servlets.slingsafemethodsservlet.service(slingsafemethodsservlet.java:344) @ org.apache.sling.api.servlets.slingsafemethodsservlet.service(slingsafemethodsservlet.java:375) @ org.apache.sling.engine.impl.request.requestdata.service(requestdata.java:508) @ org.apache.sling.engine.impl.filter.slingcomponentfilterchain.render(slingcomponentfilterchain.java:45) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:64) @ com.day.cq.wcm.core.impl.wcmdebugfilter.dofilter(wcmdebugfilter.java:146) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ com.day.cq.wcm.core.impl.wcmcomponentfilter.filterrootinclude(wcmcomponentfilter.java:356) @ com.day.cq.wcm.core.impl.wcmcomponentfilter.dofilter(wcmcomponentfilter.java:168) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ com.day.cq.personalization.impl.targetcomponentfilter.dofilter(targetcomponentfilter.java:96) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ org.apache.sling.engine.impl.slingrequestprocessorimpl.processcomponent(slingrequestprocessorimpl.java:254) @ org.apache.sling.engine.impl.slingrequestprocessorimpl.dispatchrequest(slingrequestprocessorimpl.java:294) @ org.apache.sling.engine.impl.request.slingrequestdispatcher.dispatch(slingrequestdispatcher.java:216) @ org.apache.sling.engine.impl.request.slingrequestdispatcher.forward(slingrequestdispatcher.java:144) @ com.day.cq.wcm.core.impl.wcmcomponentfilter$forwardrequestdispatcher.forward(wcmcomponentfilter.java:417) @ com.day.cq.wcm.foundation.forms.impl.formshandlingservlet.dopost(formshandlingservlet.java:140) @ org.apache.sling.api.servlets.slingallmethodsservlet.mayservice(slingallmethodsservlet.java:148) @ org.apache.sling.api.servlets.slingsafemethodsservlet.service(slingsafemethodsservlet.java:344) @ org.apache.sling.api.servlets.slingsafemethodsservlet.service(slingsafemethodsservlet.java:375) @ org.apache.sling.engine.impl.request.requestdata.service(requestdata.java:508) @ org.apache.sling.engine.impl.filter.slingcomponentfilterchain.render(slingcomponentfilterchain.java:45) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:64) @ com.day.cq.wcm.core.impl.wcmdebugfilter.dofilterwitherrorhandling(wcmdebugfilter.java:182) @ com.day.cq.wcm.core.impl.wcmdebugfilter.dofilter(wcmdebugfilter.java:149) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ com.day.cq.wcm.core.impl.wcmcomponentfilter.filterrootinclude(wcmcomponentfilter.java:356) @ com.day.cq.wcm.core.impl.wcmcomponentfilter.dofilter(wcmcomponentfilter.java:168) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ com.day.cq.personalization.impl.targetcomponentfilter.dofilter(targetcomponentfilter.java:96) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ org.apache.sling.engine.impl.slingrequestprocessorimpl.processcomponent(slingrequestprocessorimpl.java:254) @ org.apache.sling.engine.impl.slingrequestprocessorimpl.dispatchrequest(slingrequestprocessorimpl.java:294) @ org.apache.sling.engine.impl.request.slingrequestdispatcher.dispatch(slingrequestdispatcher.java:216) @ org.apache.sling.engine.impl.request.slingrequestdispatcher.forward(slingrequestdispatcher.java:144) @ com.day.cq.wcm.foundation.forms.impl.formshandlingservlet.dofilter(formshandlingservlet.java:215) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ com.day.cq.theme.impl.themeresolverfilter.dofilter(themeresolverfilter.java:76) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ com.adobe.granite.optout.impl.optoutfilter.dofilter(optoutfilter.java:74) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ com.day.cq.wcm.core.impl.wcmrequestfilter.dofilter(wcmrequestfilter.java:90) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ com.adobe.cq.history.impl.historyrequestfilter.dofilter(historyrequestfilter.java:107) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ com.day.cq.wcm.designimporter.canvaspagedeleterequestfilter.dofilter(canvaspagedeleterequestfilter.java:88) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ org.apache.sling.rewriter.impl.rewriterfilter.dofilter(rewriterfilter.java:83) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ org.apache.sling.i18n.impl.i18nfilter.dofilter(i18nfilter.java:127) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ org.apache.sling.bgservlets.impl.backgroundservletstarterfilter.dofilter(backgroundservletstarterfilter.java:135) @ org.apache.sling.engine.impl.filter.abstractslingfilterchain.dofilter(abstractslingfilterchain.java:60) @ org.apache.sling.engine.impl.slingrequestprocessorimpl.processrequest(slingrequestprocessorimpl.java:151) @ org.apache.sling.engine.impl.slingmainservlet.service(slingmainservlet.java:206) @ org.apache.felix.http.base.internal.handler.servlethandler.dohandle(servlethandler.java:96) @ org.apache.felix.http.base.internal.handler.servlethandler.handle(servlethandler.java:79) @ org.apache.felix.http.base.internal.dispatch.servletpipeline.handle(servletpipeline.java:42) @ org.apache.felix.http.base.internal.dispatch.invocationfilterchain.dofilter(invocationfilterchain.java:49) @ org.apache.felix.http.base.internal.dispatch.httpfilterchain.dofilter(httpfilterchain.java:33) @ org.apache.sling.i18n.impl.i18nfilter.dofilter(i18nfilter.java:127) @ org.apache.felix.http.base.internal.handler.filterhandler.dohandle(filterhandler.java:88) @ org.apache.felix.http.base.internal.handler.filterhandler.handle(filterhandler.java:76) @ org.apache.felix.http.base.internal.dispatch.invocationfilterchain.dofilter(invocationfilterchain.java:47) @ org.apache.felix.http.base.internal.dispatch.httpfilterchain.dofilter(httpfilterchain.java:33) @ org.apache.felix.http.sslfilter.internal.sslfilter.dofilter(sslfilter.java:55) @ org.apache.felix.http.base.internal.handler.filterhandler.dohandle(filterhandler.java:88) @ org.apache.felix.http.base.internal.handler.filterhandler.handle(filterhandler.java:76) @ org.apache.felix.http.base.internal.dispatch.invocationfilterchain.dofilter(invocationfilterchain.java:47) @ org.apache.felix.http.base.internal.dispatch.httpfilterchain.dofilter(httpfilterchain.java:33) @ com.adobe.granite.license.impl.licensecheckfilter.dofilter(licensecheckfilter.java:179) @ org.apache.felix.http.base.internal.handler.filterhandler.dohandle(filterhandler.java:88) @ org.apache.felix.http.base.internal.handler.filterhandler.handle(filterhandler.java:76) @ org.apache.felix.http.base.internal.dispatch.invocationfilterchain.dofilter(invocationfilterchain.java:47) @ org.apache.felix.http.base.internal.dispatch.httpfilterchain.dofilter(httpfilterchain.java:33) @ org.apache.sling.security.impl.referrerfilter.dofilter(referrerfilter.java:263) @ org.apache.felix.http.base.internal.handler.filterhandler.dohandle(filterhandler.java:88) @ org.apache.felix.http.base.internal.handler.filterhandler.handle(filterhandler.java:76) @ org.apache.felix.http.base.internal.dispatch.invocationfilterchain.dofilter(invocationfilterchain.java:47) @ org.apache.felix.http.base.internal.dispatch.httpfilterchain.dofilter(httpfilterchain.java:33) @ org.apache.sling.engine.impl.log.requestloggerfilter.dofilter(requestloggerfilter.java:75) @ org.apache.felix.http.base.internal.handler.filterhandler.dohandle(filterhandler.java:88) @ org.apache.felix.http.base.internal.handler.filterhandler.handle(filterhandler.java:76) @ org.apache.felix.http.base.internal.dispatch.invocationfilterchain.dofilter(invocationfilterchain.java:47) @ org.apache.felix.http.base.internal.dispatch.httpfilterchain.dofilter(httpfilterchain.java:33) @ org.apache.felix.http.base.internal.dispatch.filterpipeline.dispatch(filterpipeline.java:48) @ org.apache.felix.http.base.internal.dispatch.dispatcher.dispatch(dispatcher.java:39) @ org.apache.felix.http.base.internal.dispatcherservlet.service(dispatcherservlet.java:67) @ javax.servlet.http.httpservlet.service(httpservlet.java:820) @ com.day.j2ee.servletengine.servletruntimeenvironment.service(servletruntimeenvironment.java:250) @ com.day.j2ee.servletengine.requestdispatcherimpl.dofilter(requestdispatcherimpl.java:321) @ com.day.j2ee.servletengine.requestdispatcherimpl.service(requestdispatcherimpl.java:340) @ com.day.j2ee.servletengine.requestdispatcherimpl.service(requestdispatcherimpl.java:383) @ com.day.j2ee.servletengine.servlethandlerimpl.process(servlethandlerimpl.java:335) @ com.day.j2ee.servletengine.httplistener$worker.run(httplistener.java:644) @ java.lang.thread.run(thread.java:722)
method formshelper.setforwardpath
can used forwards request a different servlet on same cq instance. that's purpose of forwards method , can't utilize create request external server. this page describes difference between forwards , redirect. redirect can't forcefulness browser send post, doesn't solve problem well.
if want create standard cq form posts external server, external request should done server side. create cq servlet handles form request , uses httpclient
library send post external site.
cq 5.6.1 contains commons-httpclient 3.1
cq5
No comments:
Post a Comment