TestTPCallServiceXCType.java
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:1k
源码类别:

中间件编程

开发平台:

Java

  1. package org.jboss.blacktie.jatmibroker.xatmi;
  2. import java.util.Arrays;
  3. import org.apache.log4j.LogManager;
  4. import org.apache.log4j.Logger;
  5. public class TestTPCallServiceXCType implements BlacktieService {
  6. private static final Logger log = LogManager
  7. .getLogger(TestTPCallServiceXCType.class);
  8. public Response tpservice(TPSVCINFO svcinfo) {
  9. try {
  10. log.info("test_tpcall_x_c_type_service");
  11. boolean ok = false;
  12. X_C_TYPE aptr = (X_C_TYPE) svcinfo.getBuffer();
  13. byte[] receivedName = new byte[3];
  14. byte[] charArray = aptr.getByteArray("name");
  15. System.arraycopy(charArray, 0, receivedName, 0, 3);
  16. byte[] expectedName = "TOM".getBytes();
  17. long accountNumber = aptr.getLong("acct_no");
  18. float fooOne = aptr.getFloatArray("foo")[0];
  19. float fooTwo = aptr.getFloatArray("foo")[1];
  20. double balanceOne = aptr.getDoubleArray("balances")[0];
  21. double balanceTwo = aptr.getDoubleArray("balances")[1];
  22. if (accountNumber == 12345678
  23. && Arrays.equals(receivedName, expectedName)
  24. && fooOne == 1.1F && fooTwo == 2.2F && balanceOne == 1.1
  25. && balanceTwo == 2.2) {
  26. ok = true;
  27. }
  28. int len = 60;
  29. X_OCTET toReturn = (X_OCTET) svcinfo.tpalloc("X_OCTET", null);
  30. if (ok) {
  31. toReturn.setByteArray("tpcall_x_c_type".getBytes());
  32. } else {
  33. toReturn.setByteArray("fail".getBytes());
  34. }
  35. return new Response(Connection.TPSUCCESS, 23, toReturn, len, 0);
  36. } catch (ConnectionException e) {
  37. return new Response(Connection.TPFAIL, 0, null, 0, 0);
  38. }
  39. }
  40. }