Я написал программу на Java, которую нужно выполнить в пакетном файле. Когда я запускаю программу, которая выполняет командный файл, командный файл создает и записывает в соответствующие журналы, но не запускает исполняемую банку.
Мой командный файл:
SETLOCAL ENABLEEXTENSIONS
SET me=%~n0
SET parent=%~dp0
SET log=C:\apps\HL7\src\Error_log\Pipeline_batch_log.txt
ECHO /* ************************* Error Log Initiated ************************* */ >> %log%
ECHO %DATE:~10,4%:%DATE:~4,2%:%DATE:~7,2%-%TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2% >> %log%
ECHO %parent% >> %log%
ECHO %me% >> %log%
CD c:\apps\HL7\src
IF %ERRORLEVEL% NEQ 0 (
ECHO error - CD failed. >> %log%
)
ECHO java -jar HL7toSS.jar "%1" "%2" "%3" "%4" "%3" "%4" >> %log%
java -jar HL7toSS.jar "%1" "%2" "%3" "%4" "%3" "%4">> %log%
DEL c:\apps\HL7\src\%2
IF %ERRORLEVEL% NEQ 0 (
ECHO error - HL7 xml file did not delete. >> %log%
)
ECHO /* ****************************** END OF LOG ****************************** */ >> %log%
EXIT
Как видите, я записываю вывод из исполняемого файла jar, но он молчит (я предполагаю, потому что он никогда не запускается). Я также записываю команду, которая должна быть запущена; копирование этой команды и запуск ее в командной строке работает нормально.
Вот результат, который я вижу в своем файле журнала
/* ************************* Error Log Initiated ************************* */
2017:05:31-14:38:16
C:\APPS\HL7\src\
Pipeline_batch
Infile: Inbound_EDI_Files\test_1.txt HL7file: HL7_XML_Files\793723096202_HL7_test_1.xml MPAXMLfile: C:\apps\HL7\src\Processed_SS_Files\successful\793723096202_SS_test_1.xml MPAXMLERRfile: Processed_SS_Files\failed\793723096202_ERR_test_1.xml BIOMEDXMLfile: C:\apps\HL7\src\Processed_SS_Files\successful\793723096202_SS_test_1.xml BIOMEDXMLERRfile: Processed_SS_Files\failed\793723096202_ERR_test_1.xml
java -jar HL7toSS.jar "Inbound_EDI_Files\test_1.txt" "HL7_XML_Files\793723096202_HL7_test_1.xml" "C:\apps\HL7\src\Processed_SS_Files\successful\793723096202_SS_test_1.xml" "Processed_SS_Files\failed\793723096202_ERR_test_1.xml" "C:\apps\HL7\src\Processed_SS_Files\successful\793723096202_SS_test_1.xml" "Processed_SS_Files\failed\793723096202_ERR_test_1.xml"
/* ****************************** END OF LOG ****************************** */
Копирование и вставка той же команды в командную строку дает следующие ожидаемые результаты
c:\APPS\HL7\src>java -jar HL7toSS.jar "Inbound_EDI_Files\test_1.txt" "HL7_XML_Fi
les\793722688601_HL7_test_1.xml" "C:\apps\HL7\src\Processed_SS_Files\successful\
793722688601_SS_test_1.xml" "Processed_SS_Files\failed\793722688601_ERR_test_1.x
ml" "C:\apps\HL7\src\Processed_SS_Files\successful\793722688601_SS_test_1.xml" "
Processed_SS_Files\failed\793722688601_ERR_test_1.xml"
Processing: main
Processing: Convert to XML
Finished: Convert to XML
Processing: Choose
Finished: Choose
Skipping: MPA XSLT operator: Input is not available.
Skipping: MPA Validate operator: Input is not available.
Processing: BIOMED XSLT operator
Finished: BIOMED XSLT operator
Processing: BIOMED Validate operator
Finished: BIOMED Validate operator
Finished: main
c:\APPS\HL7\src>
Видите ли вы что-нибудь, что могло бы вызвать сбой пакетного файла при попытке запустить jar-файл?
РЕДАКТИРОВАТЬ:
Запуск самого командного файла из командной строки также работает. Кажется, проблема связана с вызывающей программой, которая является процедурой Progress ABL. Процедура ABL выполняет командный файл следующим образом:
ASSIGN runthis = "C:\apps\HL7\src\Pipeline_batch.bat " + INpath + " " + HL7path + " " + SSpath + " " + XML-ERRpath.
OS-COMMAND SILENT VALUE(runthis).
Мы знаем, что параметры, передаваемые в пакетный файл, верны из-за журнала.
РЕДАКТИРОВАТЬ 2:
На моей локальной машине все работает. Эта проблема возникает только на сервере. Я догадываюсь, что это связано с тем, что установка Progress на сервере каким-то образом отличается от установки на моем локальном компьютере. Теперь мне нужен Мастер прогресса.
793723096202
в пакете, но793722688601
в cmd. Следовательно, результаты также могут отличаться. - person JosefZ   schedule 31.05.2017