Я получаю недопустимую ошибку XPath от моего класса выхода службы предприятия, хотя XPath проверяет и возвращает данные в онлайн-средстве проверки.Может кто-нибудь объяснить, что является причиной ошибки?
Ошибка в журнале:
[9/10/18 18: 50: 45: 969 ПО ВОСТОЧНОМУ ВРЕМЕНИ] 00000024SystemOut O 10 сентября 2018 г. 18: 50: 45: 969 [ОШИБКА] [MXServer01] [] BMXAA1297E - Обработка интеграции завершилась неудачно, поскольку сообщение содержит недопустимое выражение XPath, например индикатор атрибута [@].null psdi.util.MXApplicationException: BMXAA1297E - Обработка интеграции завершилась неудачно, поскольку сообщение содержит недопустимое выражение XPath, например индикатор атрибута [@].null в psdi.iface.mic.StructureData.getStructureObjectList (StructureData.java:1219) в kub.iface.migexits.FwToMaxFollowupWoCreate.setUserValueIn (FwToMaxFollowupWoCreate.javageEx..Ex..Ex.serx.serx.serx.serx.ser.x.Exser.ser.Ex.112)
Частичный код Java при выходе пользователя (последняя строка показывает ошибку):
public class FwToMaxFollowupWoCreate extends UserExit {
private static MXLogger myLogger = MXLoggerFactory.getLogger("maximo.abc.custom");
private static final String STREET_CUTS_XPATH = "//*[name()='streetCuts']";
@Override
public StructureData setUserValueIn(StructureData erData) {
try {
if (myLogger.isDebugEnabled()) {
myLogger.debug(className + ": Checking for street cuts");
myLogger.debug(erData.toString());
myLogger.debug("xpath = " + STREET_CUTS_XPATH);
}
List << ? > streetCuts = erData.getStructureObjectList(STREET_CUTS_XPATH);
Значение erData:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<metaId>2248684-A-388417</metaId>
<WONUM>D18-6286</WONUM>
<ASSETNUM>385691</ASSETNUM>
<LOCATION>G-VALVE-CONTROL-10134902</LOCATION>
<DESCRIPTION_LONGDESCRIPTION>This is a follow up work order created from field work</DESCRIPTION_LONGDESCRIPTION>
<COMMODITYGROUP>UTILITY</COMMODITYGROUP>
<COMMODITY>GAS</COMMODITY>
<REPORTEDBY>THA06318</REPORTEDBY>
<streetCuts>
<workDetails>
<WORKTYPE>PM</WORKTYPE>
<WOPRIORITY>3</WOPRIORITY>
</workDetails>
<specifications>
<ASSETATTRID>LENGTH</ASSETATTRID>
<DATATYPE>NUMERIC</DATATYPE>
<DISPLAYSEQUENCE>1</DISPLAYSEQUENCE>
<CLASSSPECID>2971</CLASSSPECID>
<VALUE>4</VALUE>
<MEASUREUNITID>FEET</MEASUREUNITID>
<MANDATORY>1</MANDATORY>
</specifications>
<specifications>
<ASSETATTRID>WIDTH</ASSETATTRID>
<DATATYPE>NUMERIC</DATATYPE>
<DISPLAYSEQUENCE>2</DISPLAYSEQUENCE>
<CLASSSPECID>2972</CLASSSPECID>
<VALUE>2</VALUE>
<MEASUREUNITID>FEET</MEASUREUNITID>
<MANDATORY>1</MANDATORY>
</specifications>
</streetCuts>
</root>
Выражение XPath : // * [name () = 'streetCuts']