Article - CS252745

Compilation fails if URL specified in custom-actions.xml file contains "&" in Windchill PDMLink

Modified: 02-May-2025   


Applies To

  • Windchill PDMLink 12.1.2.10
  • Windchill ProjectLink 11.0 to 12.0

Description

  • If & is contained in the URL in custom-actions.xml file, the compilation will fail
  • How to pass parameter in URL for action
  • For example
<?xml version="1.0"?>
<!DOCTYPE listofactions SYSTEM 'actions.dtd'>
<listofactions>
    <objecttype name="navigationAndy" class="" resourceBundle="com.ptc.core.ui.navigationRB">
        <action name="andyCustomize">
          <command url="http://en2k12-wnc-x26.ptcts.com/Windchill/ptc1/project/createProplProject?unique_page_number=58477389439251_1&AjaxEnabled=row&wizardActionClass=com.ptc.netmarkets.project.processor.CreatePROPLProjectFormProcessor&wizardActionMethod=execute&tableID=table__netmarkets.project.list.table_TABLE&actionName=createProplProject&portlet=poppedup&context=comp%24netmarkets%24%24"/>
        </action>
    </objecttype>
</listofactions>
  • ​Exception at Windchill startup:
ERROR [RMI TCP Connection(646)-192.168.137.222] com.ptc.netmarkets.util.misc.StandardNmActionService.XMLParsing  - Failed to Parse the XML Error is 
com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '=' (code 61); expected a semi-colon after the reference for entity 'AjaxEnabled'
 at [row,col {unknown-source}]: [6,146]
    at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:639)
    at com.ctc.wstx.sr.StreamScanner.parseEntityName(StreamScanner.java:2059)
    at com.ctc.wstx.sr.StreamScanner.fullyResolveEntity(StreamScanner.java:1517)
    at com.ctc.wstx.sr.BasicStreamReader.parseAttrValue(BasicStreamReader.java:1934)
    at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3063)
    at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2961)
    at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2837)
    at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1072)
    at javax.xml.stream.util.StreamReaderDelegate.next(StreamReaderDelegate.java:88)
    at com.ptc.netmarkets.util.misc.StandardNmActionService.parseActionXML(StandardNmActionService.java:1382)
    at com.ptc.netmarkets.util.misc.StandardNmActionService.initializeXMLNew(StandardNmActionService.java:5000)
    at com.ptc.netmarkets.util.misc.StandardNmActionService.initializeXML(StandardNmActionService.java:4960)
    at com.ptc.netmarkets.util.misc.StandardNmActionService.reloadXML(StandardNmActionService.java:929)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at wt.method.MethodResultWriter.writeExternal(MethodResultWriter.java:165)
    at wt.method.MethodResult.writeExternal(MethodResult.java:226)
    at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1456)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
    at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:294)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:334)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
This is a printer-friendly version of Article 252745 and may be out of date. For the latest version click CS252745