Ask a Question

unable to send message to weblogic JMS

SOLVED
Ilario72
Occasional Contributor

unable to send message to weblogic JMS

Hello,
I'm unable to send message to weblogic JMS server using ReadyAPI 3.10.0

following the instruction reported in
https://support.smartbear.com/readyapi/docs/testing/environments/jms.html

and in

https://support.smartbear.com/readyapi/docs/testing/jms/config.html

 

I created a jms server with all the properties, when I press the "test" button the response is "connection has been tested successfully",

then I inserted a step JMS request (SOAP) with the correct endpoint and inserted a text content for my message, but when I press "send" button receive the error:

 

"Invalid Hermes configuration. Make sure the 'Hermes Config' project property specifies the path to the hermes-config.xml file."

 

Note that the 'Hermes Config' project property is configured with the correct path: file:///C:/.hermes

 

Best regards

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Ilario72
Occasional Contributor

Re: unable to send message to weblogic JMS

I finally solved it following this procedure that I want share to you:

- insert in <readyapi>/bin/ext/ directory the jar files: weblogic.jar and wlthint3client.jar (get them from from your weblogic machine)
- Start ReadyAPI
- create new project, then new test suite and test case
- add a new JMS Server with:
      - Initial Context Class: weblogic.jndi.WLInitialContextFactory
      - Provider URL: (insert your t3 address, e.g.: t3://twls01:7020 )
      - Connection Factory JMDI Name: insert the JNDI name of your connection factory (see your weblogic configuration)
      - User and Password of weblogic
      - additional JNDI: add java.naming.security.principal (with weblogic user value)
      - additional JNDI: add java.naming.security.credential (with weblogic password value)
- once created press "test" button to check connection
- import a new API definition using a wsdl (e.g.: http://www.dneonline.com/calculator.asmx?wsdl )
- in the test case add new step: JMS Request
- in the JMS Request popup select interface: SOAP
- in the JMS Request popup select a operation interface (e.g.: CalculatorSoap->Add)
- leave empty the options for the new request
- in the question: Start Hermes for creating JMS objects? press NO
- in the manual tab insert:
      - JMS Server (select the JMS created)
      - Send JNDI Destination: insert the JNDI name of the queue/topic (see your weblogic configuration)
- in the step JMS Request insert your xml message and assertion: JMS Status


As conclusion I believe that in this new version there are too many references to HermesJMS even if it is no longer used, this creates confusion to the user
and in addition the online documentation is not exhaustive

View solution in original post

2 REPLIES 2
Ilario72
Occasional Contributor

Re: unable to send message to weblogic JMS

today I made a new attempt: I created a new project from scratch but the issue remains,

in addition I noticed that when I press add JMS destination to my API there is an error:

Ilario72_0-1632901528618.png

 

but the hermes-cofing.xml is present. This is the error log:

 

Wed Sep 29 09:47:41 CEST 2021: ERROR: java.lang.NoClassDefFoundError: com/jidesoft/action/DefaultDockableBarDockableHolder
java.lang.NoClassDefFoundError: com/jidesoft/action/DefaultDockableBarDockableHolder
at hermes.browser.ProxyHermesUI.setConfig(ProxyHermesUI.java:85)
at hermes.JAXBHermesLoader.load(JAXBHermesLoader.java:340)
at hermes.HermesContext.load(HermesContext.java:57)
at hermes.HermesInitialContextFactory.getInitialContext(HermesInitialContextFactory.java:94)
at java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:730)
at java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
at java.naming/javax.naming.InitialContext.init(InitialContext.java:236)
at java.naming/javax.naming.InitialContext.<init>(InitialContext.java:208)
at com.eviware.soapui.impl.wsdl.submit.transports.jms.util.HermesUtils.getHermes(HermesUtils.java:129)
at com.eviware.soapui.impl.wsdl.submit.transports.jms.util.HermesUtils.hermesContext(HermesUtils.java:109)
at com.eviware.soapui.impl.wsdl.actions.iface.AddJMSEndpointAction.getHermesContext(AddJMSEndpointAction.java:171)
at com.eviware.soapui.impl.wsdl.actions.iface.AddJMSEndpointAction.initValues(AddJMSEndpointAction.java:126)
at com.eviware.soapui.impl.wsdl.actions.iface.AddJMSEndpointAction.perform(AddJMSEndpointAction.java:71)
at com.eviware.soapui.impl.wsdl.actions.iface.AddJMSEndpointAction.perform(AddJMSEndpointAction.java:1)
at com.eviware.soapui.support.action.swing.SwingActionDelegate.actionPerformed(SwingActionDelegate.java:195)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1022)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1066)
at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6617)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6382)
at java.desktop/java.awt.Container.processEvent(Container.java:2264)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4993)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2322)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4934)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4563)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4504)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2308)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4825)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)


Is there anyone who has ever tried to send weblogic jms messages with ReadyAPI 3.10?

Is it possible to have a valid procedure to do it?

Thank you

 

Ilario72
Occasional Contributor

Re: unable to send message to weblogic JMS

I finally solved it following this procedure that I want share to you:

- insert in <readyapi>/bin/ext/ directory the jar files: weblogic.jar and wlthint3client.jar (get them from from your weblogic machine)
- Start ReadyAPI
- create new project, then new test suite and test case
- add a new JMS Server with:
      - Initial Context Class: weblogic.jndi.WLInitialContextFactory
      - Provider URL: (insert your t3 address, e.g.: t3://twls01:7020 )
      - Connection Factory JMDI Name: insert the JNDI name of your connection factory (see your weblogic configuration)
      - User and Password of weblogic
      - additional JNDI: add java.naming.security.principal (with weblogic user value)
      - additional JNDI: add java.naming.security.credential (with weblogic password value)
- once created press "test" button to check connection
- import a new API definition using a wsdl (e.g.: http://www.dneonline.com/calculator.asmx?wsdl )
- in the test case add new step: JMS Request
- in the JMS Request popup select interface: SOAP
- in the JMS Request popup select a operation interface (e.g.: CalculatorSoap->Add)
- leave empty the options for the new request
- in the question: Start Hermes for creating JMS objects? press NO
- in the manual tab insert:
      - JMS Server (select the JMS created)
      - Send JNDI Destination: insert the JNDI name of the queue/topic (see your weblogic configuration)
- in the step JMS Request insert your xml message and assertion: JMS Status


As conclusion I believe that in this new version there are too many references to HermesJMS even if it is no longer used, this creates confusion to the user
and in addition the online documentation is not exhaustive

View solution in original post

cancel
Showing results for 
Search instead for 
Did you mean: