2
jposチャンネルのヘッダー文字列にスペースが含まれていると問題が発生しました。以下のようなチャンネル構成で設定しましたが、Q2サーバーを起動すると、ヘッダー値がトリミングされているようです。その結果、特定の要求については、私はJposサーバーから何の応答も得られません。スペースでjposチャンネルヘッダーを設定する方法
<channel-adaptor class="org.jpos.q2.iso.ChannelAdaptor" logger="Q2" name="my-channel">
<channel class="CBCChannel" logger="Q2"
packager="org.jpos.iso.packager.GenericPackager" header="ISOHEADER ">
<property name="packager-config" value="/path/to/PACKAGER/iso87ascii.xml" />
<property name="host" value="xxx.xx.xx.xx"/>
<property name="port" value="yyyy" />
</channel>
<in>channel-send</in>
<out>channel-receive</out>
<property name="timeout" value="300000" />
<property name="keep-alive" value="true" />
<reconnect-delay>10000</reconnect-delay>
</channel-adaptor>
CBCChannelだけのスペースを無視せずにスペースが含まれているチャネルヘッダを設定するには、どのような方法がありますRawChannel
public class CBCChannel extends RawChannel {
public CBCChannel() throws ISOException {
}
public CBCChannel(String host, int port, ISOPackager p, byte[] header) {
super(host, port, p, header);
}
public CBCChannel(ISOPackager p, byte[] header) throws IOException {
super(p, header);
}
public CBCChannel(ISOPackager p, byte[] header, ServerSocket serverSocket) throws IOException {
super(p, header, serverSocket);
}
}
を拡張しますか?
こんにちは、私たちはそれが何であるか、それがどこから拡張されているのかわからないので、あなたはカスタムチャンネルの実装を持っています。あなたのsetHeaderがどのように実装されているのかわからないので、 CBCChannelコードを追加してください。または、残りの部分がclasseifiedの場合は、少なくとも拡張部分を追加してください。 –
こんにちはAndres、私はCBCChannelコードを追加しました。これはRawChannelインターフェイスを拡張するだけで、ヘッダーには何もしません。 – Chanikag
どのような方法でもオーバーライドしなかった場合、なぜRawChannelを拡張するのか分かりませんが、主な問題は、RawChannelがbcdとしてエンコードするので、唯一の数字のヘッダーが必要だということです。 –