Umbraco 6.0.3 gives error on RestContourExample.xslt
Hi,
I'm trying to get contour working with ajax. After trying a lot, now I wanted to give the RestContour a try.
Unfortunately i'm not able to get the RestContourExample working on Umbraco 6.0.3 (Both Webforms and Mvc) due to the error (Error parsing XSLT file: \xslt\RestContourExample.xslt):
System.Xml.Xsl.XslTransformException was unhandled by user code
HResult=-2146231998
Message=An error occurred during a call to extension function 'BuildForm'. See InnerException for a complete description of the error.
Source=System.Data.SqlXml
LineNumber=0
LinePosition=0
StackTrace:
at System.Xml.Xsl.Runtime.XmlExtensionFunction.Invoke(Object extObj, Object[] args)
at System.Xml.Xsl.Runtime.XmlQueryContext.InvokeXsltLateBoundFunction(String name, String namespaceUri, IList`1[] args)
at System.Xml.Xsl.CompiledQuery.Query.<xsl:template match="/">(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime, XPathNavigator {urn:schemas-microsoft-com:xslt-debug}current, Double {urn:schemas-microsoft-com:xslt-debug}position, Double {urn:schemas-microsoft-com:xslt-debug}last, IList`1 {urn:schemas-microsoft-com:xslt-debug}namespaces) in C:\Development\MvcApplication3\MvcApplication3\xslt\RestContourExample.xslt:line 64
at System.Xml.Xsl.CompiledQuery.Query.<xsl:apply-templates>(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime, XPathNavigator , Double , Double )
at System.Xml.Xsl.CompiledQuery.Query.Root(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
at System.Xml.Xsl.CompiledQuery.Query.Execute(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime)
at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlSequenceWriter results)
at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer)
at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results, XmlResolver documentResolver)
at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, TextWriter results)
at umbraco.macro.GetXsltTransformResult(XmlDocument macroXML, XslCompiledTransform xslt, Dictionary`2 parameters)
at umbraco.macro.GetXsltTransformResult(XmlDocument macroXML, XslCompiledTransform xslt)
at umbraco.macro.LoadMacroXslt(macro macro, MacroModel model, Hashtable pageElements, Boolean throwError)
InnerException: System.NullReferenceException
HResult=-2147467261
Message=Object reference not set to an instance of an object.
Source=Umbraco.Forms.Core
StackTrace:
at Umbraco.Forms.Core.Form.get_AllFields()
at Cultiv.RestContour.XsltExtensions.GetValidationRules()
at Cultiv.RestContour.XsltExtensions.BuildForm()
InnerException:
This is the call at line 57 of the RestContourExample.xslt (on rc:BuildForm()) :
I have tried with the folowing configurations but same result (all umbraco 6.0.3 and contour 3.0.9) on my Windows 7 machine (using the default IISExpress used by Visual studio & Webmatrix):
NuGet installation on Visual Studio 2012 with Mvc 4 (.NET 4.5).
Could you please try and post the content of the xslt file in here? From the error description above it looks like a namespace has possibly been set twice. But I would like to see the code to be sure.
See Package README: (I updated the GUID's and it worked)
Finally, update both GUIDs in the RestContourExample.xslt to the new ones that you've just created (click on preview on each form to get the GUID in the address bar). The xslt file doesn't save correctly from within Umbraco, just check the "Skip testing (ignore errors)" checkbox, it's okay.
Go to yoursite.ext/?altTemplate=RestContourExample to test the forms.
However, now I seem to have a second problem. interestingly I was getting the responses correctly from the Cultiv RestContour package when hitting:
But now (after installing the "example" package) all I get is this: (anyone have any ideas?)
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<error>
<![CDATA[
MESSAGE: Exception has been thrown by the target of an invocation. STACKTRACE: at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at umbraco.presentation.umbracobase.requestModule.invokeMethod(restExtension myExtension, Object[] paras) INNEREXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified. File name: 'Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' at Cultiv.RestContour.Helper.GetJsonForObject(Object object) at Cultiv.RestContour.Helper.GetFormFields(String formGuid, String stringType) at Cultiv.RestContour.GetContourForm.GetFormFields() WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
]]>
</error>
I think the important part is: Could not load file or assembly 'Newtonsoft.Json
Hey, I solved it - the Cultiv.RestContour.dll is an older one which gets installed with the "Rest Contour Preview" Package. So if you installed the Preview after the Cultiv Rest Contour package (as I did) then the .dll gets overwritten.
It looks like the Preview and the actual package contain references to different versions of the Json.NET package, which fails depending on which dll you have and which one you're trying to use. Anyways, to fix it, just grab the .dll out of the main (2.02) Cultiv Rest Contour Package, and copy it overtop the one that the Preview put in there. (Preview Form will stop working, and give this XSLT message that you showed above)
So Preview Package - (old .dll)
Cultiv Package - (new dll)
It sounds like you did things in the reverse order that I did, so you probably have the (new) one, thus the preview package doesn't work.
Umbraco 6.0.3 gives error on RestContourExample.xslt
Hi,
I'm trying to get contour working with ajax. After trying a lot, now I wanted to give the RestContour a try.
Unfortunately i'm not able to get the RestContourExample working on Umbraco 6.0.3 (Both Webforms and Mvc) due to the error (Error parsing XSLT file: \xslt\RestContourExample.xslt):
This is the call at line 57 of the RestContourExample.xslt (on rc:BuildForm()) :
I have tried with the folowing configurations but same result (all umbraco 6.0.3 and contour 3.0.9) on my Windows 7 machine (using the default IISExpress used by Visual studio & Webmatrix):
Hi ID
Could you please try and post the content of the xslt file in here? From the error description above it looks like a namespace has possibly been set twice. But I would like to see the code to be sure.
Cheers,
Jan
It's just the file which is included in the zip file --> RestContourPreview_0.8.0.zip
but for your sake, here it is ;-)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library"
xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon"
xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes"
xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath"
xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions"
xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings"
xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets"
xmlns:umbraco.contour="urn:umbraco.contour"
xmlns:cultiv.restcontour="urn:cultiv.restcontour"
exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets umbraco.contour cultiv.restcontour ">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:param name="currentPage"/>
<xsl:template match="/">
<xsl:variable name="setFormGuid" select="cultiv.restcontour:SetContourGuid('f2cece78-1bd1-426a-89e6-65f4ac72a1d7')"/>
<xsl:variable name="formGuid" select="cultiv.restcontour:GetContourGuid()"/>
<form action="" method="post" id="form-{$formGuid}" name="qaForm">
<ul class="formArea">
<li>
<label for="Name">Name:</label>
<input type="text" name="Name"/>
</li>
<li>
<label for="Email">E-mail:</label>
<input type="text" name="Email"/>
</li>
<li>
<label for="Message">Question:</label>
<textarea name="Message">
<xsl:text> </xsl:text>
</textarea>
</li>
<li class="send-button">
<input type="submit" value="Send" class="button" />
</li>
<li class="errorList">
<ul class="errorList">
<xsl:comment/>
</ul>
</li>
</ul>
<div class="formLoading hide">
<h2>Processing</h2>
<h4>The form is being sent</h4>
</div>
<div class="formPosted hide">
<h2>Thanks</h2>
<h4>We've successfully recieved the form, thanks!</h4>
</div>
</form>
<script type="text/javascript">
<xsl:text>jQuery(document).ready(function () {</xsl:text>
<xsl:value-of select="cultiv.restcontour:BuildForm()"/>
<xsl:text>});</xsl:text>
</script>
<xsl:variable name="setFormGuid2" select="cultiv.restcontour:SetContourGuid('b41c9cb7-6061-4b61-b335-879cf6cecae0')"/>
<xsl:variable name="formGuid2" select="cultiv.restcontour:GetContourGuid()"/>
<xsl:if test="count($currentPage/node) != 0">
<xsl:for-each select="$currentPage/node">
<h3>
<xsl:value-of select="@nodeName"/>
</h3>
<p>
<xsl:value-of select="data [@alias = 'answer']" disable-output-escaping="yes"/>
</p>
</xsl:for-each>
</xsl:if>
<form action="" method="post" id="form-{$formGuid2}" name="qaForm">
<ul class="formArea">
<li>
<label for="Name">Naam:</label>
<input type="text" name="Name" class="input-medium2 normalFields"/>
</li>
<li>
<label for="Email">E-mail:</label>
<input type="text" name="Email" class="input-medium2 normalFields" />
</li>
<li>
<label for="Comment">Comment:</label>
<textarea name="Comment" class="input-medium2 normalFields">
<xsl:text> </xsl:text>
</textarea>
</li>
<li class="send-button">
<input type="submit" value="Send" class="button" />
</li>
<li class="errorList">
<ul class="errorList">
<xsl:comment/>
</ul>
</li>
</ul>
<div class="formLoading hide">
<h2>Processing</h2>
<h4>The form is being sent</h4>
</div>
<div class="formPosted hide">
<h2>Thanks</h2>
<h4>We've successfully recieved the form, thanks!</h4>
</div>
</form>
<script type="text/javascript">
<xsl:text>jQuery(document).ready(function () {</xsl:text>
<xsl:value-of select="cultiv.restcontour:BuildForm()"/>
<xsl:text>});</xsl:text>
</script>
</xsl:template>
</xsl:stylesheet>
Hi,
I'm getting the same problem using Umbraco 4.7.1
Error parsing XSLT file: \xslt\RestContourExample.xslt):
I fixed the first problem by updating the GUID - I can now see the example form.
http://localhost:49933/?altTemplate=RestContourExample
See Package README: (I updated the GUID's and it worked)
Finally, update both GUIDs in the RestContourExample.xslt to the new ones that you've just created (click on preview on each form to get the GUID in the address bar). The xslt file doesn't save correctly from within Umbraco, just check the "Skip testing (ignore errors)" checkbox, it's okay.
Go to yoursite.ext/?altTemplate=RestContourExample to test the forms.
However, now I seem to have a second problem. interestingly I was getting the responses correctly from the Cultiv RestContour package when hitting:
http://localhost:49933/base/getContourForm/GetFormFields/?formGuid=9bb96784-1fe0-4da0-8283-306eb800101e
But now (after installing the "example" package) all I get is this: (anyone have any ideas?)
Hey, I solved it - the Cultiv.RestContour.dll is an older one which gets installed with the "Rest Contour Preview" Package. So if you installed the Preview after the Cultiv Rest Contour package (as I did) then the .dll gets overwritten.
It looks like the Preview and the actual package contain references to different versions of the Json.NET package, which fails depending on which dll you have and which one you're trying to use. Anyways, to fix it, just grab the .dll out of the main (2.02) Cultiv Rest Contour Package, and copy it overtop the one that the Preview put in there. (Preview Form will stop working, and give this XSLT message that you showed above)
So Preview Package - (old .dll)
Cultiv Package - (new dll)
It sounds like you did things in the reverse order that I did, so you probably have the (new) one, thus the preview package doesn't work.
is working on a reply...