⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlscriptaccess.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    */   public void initArgs(String[] args) {      this.glob.init(args);   }   /**    * Access the handle of this xmlBlaster connection.     */   public Global getGlobal() {      return this.glob;   }   /**    * Send xml encoded requests to the xmlBlaster server.     * @exception All caught exceptions are thrown as RuntimeException    * @see <a href="http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.script.html">client.script requirement</a>    */   public String sendRequest(String xmlRequest) {      try {         this.reader = new StringReader(xmlRequest);         this.outStream = new ByteArrayOutputStream();         // TODO: Dispatch events:         this.interpreter = new XmlScriptClient(this.glob, this.glob.getXmlBlasterAccess(),                                                     this, null, this.outStream);         this.interpreter.parse(this.reader);         return this.outStream.toString();      }      catch (XmlBlasterException e) {         log.warning("sendRequest failed: " + e.getMessage());         throw new RuntimeException(e.getMessage());      }      catch (Exception e) {         log.severe("sendRequest failed: " + e.toString());         e.printStackTrace();         throw new RuntimeException(e.toString());      }   }   /**    * Setup the cache mode.    * @see org.xmlBlaster.client.I_XmlBlasterAccess#createSynchronousCache(int)    * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/client.cache.html">client.cache requirement</a>    */   public SynchronousCache createSynchronousCache(int size) {      return this.glob.getXmlBlasterAccess().createSynchronousCache(size);   }   /**    * Login to xmlBlaster.     * @see org.xmlBlaster.client.I_XmlBlasterAccess#connect(ConnectQos, org.xmlBlaster.client.I_Callback)    * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.connect.html">interface.connect requirement</a>    */   public ConnectReturnQos connect(String xmlQos) throws XmlBlasterException {      ConnectQos qos = new ConnectQos(this.glob, this.glob.getConnectQosFactory().readObject(xmlQos));      return this.glob.getXmlBlasterAccess().connect(qos, this);   }   /**    * Leaves the connection to the server.     * The server side resources are not freed if the client has connected fail save    * and messages are queued until we login again with the same name and publicSessionId    * @see org.xmlBlaster.client.I_XmlBlasterAccess#leaveServer(java.util.Map)    */   public void leaveServer() {      this.glob.getXmlBlasterAccess().leaveServer(null);   }   /**    * Has the connect() method successfully passed?     * @see org.xmlBlaster.client.I_XmlBlasterAccess#isConnected()    */   public boolean isConnected() {      return this.glob.getXmlBlasterAccess().isConnected();   }   /**    * If no communication takes place longer the the lifetime of the session    * we can refresh the session to avoid auto logout    * @see org.xmlBlaster.client.I_XmlBlasterAccess#refreshSession()    */   public void refreshSession() throws XmlBlasterException {      this.glob.getXmlBlasterAccess().refreshSession();   }   /**    * Access the callback server which is currently used in I_XmlBlasterAccess.     * @see org.xmlBlaster.client.I_XmlBlasterAccess#getCbServer()    */   public I_CallbackServer getCbServer() {      return this.glob.getXmlBlasterAccess().getCbServer();   }   /**   * @see org.xmlBlaster.client.I_XmlBlasterAccess#getId()    */   public String getId() {      return this.glob.getXmlBlasterAccess().getId();   }   /**    * Logout from the server, free all server and client side resources.     * @return false if connect() wasn't called before or if you call disconnect() multiple times    * @see org.xmlBlaster.client.I_XmlBlasterAccess#disconnect(DisconnectQos)    * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.disconnect.html">interface.disconnect requirement</a>    */   public boolean disconnect(String xmlQos) throws XmlBlasterException {      DisconnectQos disconnectQos = new DisconnectQos(this.glob, glob.getDisconnectQosFactory().readObject(xmlQos));      return this.glob.getXmlBlasterAccess().disconnect(disconnectQos);   }   /**    * Subscribe to messages.     * @param xmlKey Which message topics to retrieve    * @param xmlQos Control the behavior and further filter messages with mime based filter plugins    * @see org.xmlBlaster.client.I_XmlBlasterAccess#subscribe(SubscribeKey, SubscribeQos, I_Callback)    * @exception XmlBlasterException like ErrorCode.USER_NOT_CONNECTED and others    */   public SubscribeReturnQos subscribe(String xmlKey, String xmlQos) throws XmlBlasterException {      return this.glob.getXmlBlasterAccess().subscribe(xmlKey, xmlQos, null);   }   /**    * Cancel subscription.     * @see org.xmlBlaster.client.I_XmlBlasterAccess#unSubscribe(UnSubscribeKey, UnSubscribeQos)    * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.unSubscribe.html">interface.unSubscribe requirement</a>    */   public UnSubscribeReturnQos[] unSubscribe(String xmlKey, String xmlQos) throws XmlBlasterException {      return this.glob.getXmlBlasterAccess().unSubscribe(                       new UnSubscribeKey(this.glob, this.glob.getQueryKeyFactory().readObject(xmlKey)),                        new UnSubscribeQos(this.glob, this.glob.getQueryQosFactory().readObject(xmlQos)));   }   /**    * Get synchronous messages.     * @param xmlKey Which message topics to retrieve    * @param xmlQos Control the behavior and further filter messages with mime based filter plugins    * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.get.html">interface.get requirement</a>    * @see org.xmlBlaster.client.I_XmlBlasterAccess#get(GetKey, GetQos)    * @exception XmlBlasterException like ErrorCode.USER_NOT_CONNECTED and others    */   public MsgUnit[] get(String xmlKey, String xmlQos) throws XmlBlasterException {      return this.glob.getXmlBlasterAccess().get(                  new GetKey(this.glob, glob.getQueryKeyFactory().readObject(xmlKey)),                  new GetQos(this.glob, glob.getQueryQosFactory().readObject(xmlQos)));   }  /**   * @see org.xmlBlaster.client.I_XmlBlasterAccess#getCached(GetKey, GetQos)   */   public MsgUnit[] getCached(String xmlKey, String xmlQos) throws XmlBlasterException {      return this.glob.getXmlBlasterAccess().getCached(                  new GetKey(this.glob, glob.getQueryKeyFactory().readObject(xmlKey)),                  new GetQos(this.glob, glob.getQueryQosFactory().readObject(xmlQos)));   }   //public PublishReturnQos publish(MsgUnit msgUnit) throws XmlBlasterException {   //   return this.glob.getXmlBlasterAccess().publish(msgUnit);   //}   /**    * Publish a message.     * @param xmlKey The message topic    * @param contentStr The payload as a string    * @param xmlQos Control the behavior    * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.publish.html">interface.publish requirement</a>    * @see org.xmlBlaster.client.I_XmlBlasterAccess#publish(org.xmlBlaster.util.MsgUnit)    * @exception XmlBlasterException like ErrorCode.USER_NOT_CONNECTED and others    */   public PublishReturnQos publishStr(String xmlKey, String contentStr, String xmlQos) throws XmlBlasterException {      MsgUnit msgUnit = new MsgUnit(this.glob, xmlKey, contentStr, xmlQos);      return this.glob.getXmlBlasterAccess().publish(msgUnit);   }   /**    * Publish a message.     * @param xmlKey The message topic    * @param content The payload as binary blob    * @param xmlQos Control the behavior    * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.publish.html">interface.publish requirement</a>    * @see org.xmlBlaster.client.I_XmlBlasterAccess#publish(org.xmlBlaster.util.MsgUnit)    * @exception XmlBlasterException like ErrorCode.USER_NOT_CONNECTED and others    */   public PublishReturnQos publishBlob(String xmlKey, byte[] content, String xmlQos) throws XmlBlasterException {      MsgUnit msgUnit = new MsgUnit(this.glob, xmlKey, content, xmlQos);      return this.glob.getXmlBlasterAccess().publish(msgUnit);   }   /**    * @see <a href="http://www.xmlBlaster.org/xmlBlaster/doc/requirements/interface.erase.html">interface.erase requirement</a>    */   public EraseReturnQos[] erase(String xmlKey, String xmlQos) throws XmlBlasterException {      return this.glob.getXmlBlasterAccess().erase(                  new EraseKey(this.glob, glob.getQueryKeyFactory().readObject(xmlKey)),                  new EraseQos(this.glob, glob.getQueryQosFactory().readObject(xmlQos)));   }   /**    * Enforced by I_Callback    */   public String update(String cbSessionId, UpdateKey updateKey, byte[] content, UpdateQos updateQos) throws XmlBlasterException {      if (log.isLoggable(Level.FINER)) log.finer("Callback update arrived: " + updateKey.getOid());      return notifyUpdateEvent(cbSessionId, updateKey, content, updateQos);   }   /**    * Dump state of this client connection handler into an XML ASCII string.    * @return internal state    */   public String toXml() {      return this.glob.getXmlBlasterAccess().toXml();   }   /**    * For testing: java org.xmlBlaster.client.activex.XmlScriptAccess    */   public static void main(String args[]) {      try {         final XmlScriptAccess access = new XmlScriptAccess();         //access.activateUpdateConsumer(true);         Properties props = access.createPropertiesInstance();         props.put("protocol", "SOCKET");         //props.put("trace", "true");         access.initialize(props);         class TestUpdateListener implements UpdateListener {            public void update(UpdateEvent updateEvent) {               System.out.println("TestUpdateListener.update: " + updateEvent.getKey());               access.setUpdateReturn("<qos><state id='OK'/></qos>");            }         }         TestUpdateListener listener = new TestUpdateListener();         access.addUpdateListener(listener);         String request = "<xmlBlaster>" +                          "   <connect/>" +                          "   <subscribe><key oid='test'></key><qos/></subscribe>" +                          "   <publish>" +                          "     <key oid='test'><airport name='london'/></key>" +                          "     <content>This is a simple script test</content>" +                          "     <qos/>" +                          "   </publish>" +                          "   <wait delay='1000'/>" +                          "</xmlBlaster>";         String response = access.sendRequest(request);         System.out.println("Response is: " + response);         //UpdateMsgUnit[] msgs = access.consumeUdateMessages();         //for(int i=0; i<msgs.length; i++) {         //   System.out.println("Access queued update message '" + msgs[i].getUpdateKey().toXml() + "'");         //}         //msgs = access.consumeUdateMessages();         //if (msgs.length != 0)         //   System.out.println("ERROR: queued update message not consumed properly");         System.out.println("***** Publishing ...");         PublishReturnQos ret = access.publishStr("<key oid='test'/>", "Bla", "<qos/>");         System.out.println("***** Published message ret=" + ret.getState());         Thread.sleep(2000);         response = access.sendRequest("<xmlBlaster>disconnect/></xmlBlaster>");      }      catch (Throwable e) {         System.out.println("ERROR: Caught exception: " + e.toString());      }   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -