Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

XSL Error - Cannot find a matching 1-argument function named node-set()

Hi everyone,  and @dchiesa1 

Issue:- The XSL Transform policy was working on OPDK Version 4.50.00.00, but after migrated the same code to 4.53.00 we are getting error
Apigee Trace

error.cause.cause Cannot find a matching 1-argument function named {http://exslt.org/common}node-set(). External function calls have been disabled
error Evaluation of XSL somename.xsl failed with reason: "Cannot find a matching 1-argument function named {http://exslt.org/common}node-set(). External function calls have been disabled"
type ErrorPoint
state PROXY_REQ_FLOW
error.class com.apigee.flow.FlowException
error.cause Cannot find a matching 1-argument function named {http://exslt.org/common}node-set(). External function calls have been disabled
Identifier fault

Solved Solved
1 2 217
2 ACCEPTED SOLUTIONS

Hello,

4.51.00.12 (https://docs.apigee.com/release/notes/4510012-private-cloud-relnotes) introduced 274587823 (External entities are not allowed to be loaded by default in XSLTransform Policy) which could be causing the behavior change you're reporting. You can revert to previous behavior by setting a flag in message processors by following the process below:

1. On each message processor node, create or edit the file

/opt/apigee/customer/application/message-processor.properties

2. Add the line:

conf_feature-flags_xsl.allow.external.entities=true

3. Save the file and ensure it is owned and readable by "apigee" user.

chown apigee:apigee /opt/apigee/customer/application/message-processor.properties

4. Restart message processor service

apigee-service edge-message-processor restart

5. Repeat on each message processor node 1 at a time

View solution in original post

This works thank you @neeldey 

View solution in original post

2 REPLIES 2

Hello,

4.51.00.12 (https://docs.apigee.com/release/notes/4510012-private-cloud-relnotes) introduced 274587823 (External entities are not allowed to be loaded by default in XSLTransform Policy) which could be causing the behavior change you're reporting. You can revert to previous behavior by setting a flag in message processors by following the process below:

1. On each message processor node, create or edit the file

/opt/apigee/customer/application/message-processor.properties

2. Add the line:

conf_feature-flags_xsl.allow.external.entities=true

3. Save the file and ensure it is owned and readable by "apigee" user.

chown apigee:apigee /opt/apigee/customer/application/message-processor.properties

4. Restart message processor service

apigee-service edge-message-processor restart

5. Repeat on each message processor node 1 at a time

This works thank you @neeldey