최근 웹 로그 환경을 버전 10.3.3.0에서 10.3.6.0으로 업그레이드하는 작업에 참여했습니다. 둘 다 OSB의 동일한 버전을 호스팅하고 있었고 모든 코드를 복사 한 후에 문제가 발생했습니다. 모든 것이 우리가 결국 xquery의 조각으로 발견 한 것과는 별개로 작용했습니다. 문제의 XQuery는 데이터베이스에서 토큰을 가져 와서 비즈니스 서비스를 통해 요청을 보내고 데이터베이스에서 검색 한 토큰이 잘못 포맷되었습니다. 문제의 XQuery는 fn-bea:execute-sql
명령입니다. 기존의 환경이 캐리지 리턴과 토큰 형식의 토큰을 생성하는 경우, 새로운 환경은 동일한 코드를 실행하고이처럼 보였다 토큰을 생성 :weblogic의 SQL Xquery 구현
54686973206973206120746F6B656E0D#&13;
0A54686973206973206120746F6B656E#&13;
0D0A54686973206973206120746F6B65#&13;
6E0D0A54686973206973206120746F6B#&13;
656E0D0A54686973206973206120746F#&13;
6B656E0D0A5468697320697320612074#&13;
토큰 한 각 줄의 끝 이전에 추가 #&13;
캐리지 리턴 (나는 메모장 + +로 확인하고 이것 이후 캐리지 리턴 문자를 보았다). 이제 나는 #&13;
이 캐리지 리턴을위한 ASCII 코드임을 알고 있으며 해결 방법으로 xquery 형식을 사용하여 조금 제거했습니다. 문제의 XQuery는 다음과 같습니다.
fn:replace(xs:token(TOKEN), " " , "
")
여기서 token은 SQL 함수의 결과를 넣는 변수입니다.
그러나이 문제의 원인은 무엇입니까? 이 xquery 기능이 최신 버전의 weblogic에서 제거 되었습니까? 웹 로직 변경 로그에서이 것과 직접 관련이있는 내용을 볼 수 없었습니다.
문자열을 토큰으로 포맷하여 # & 13을 제거하는 것보다 더 깨끗한 해결 방법이 있습니다. 캐리지 리턴과 함께 추가 된 공백 대신 캐리지 리턴을 다시 추가 하시겠습니까?
감사합니다, TheVoicedElk
메모장에서 토큰을보고 나서 ++ 54286973206973206120746F6B656E0D # &13; CRLF와 같은 것을 얻었습니다. 건배, 나는 캐리지 리턴을 교체하는 것에 대해 생각하지 않았습니다. 기능을 건너 뛸 것이기 때문입니다. – TheVoicedElk