I try to configure TIBCO JMS listener in microesb (from Integration Studio)
added some lines in \runtime\microesb\conf\deployment.toml :
[[transport.jms.listener]]
parameter.initial_naming_factory = "com.tibco.tibjms.naming.TibjmsInitialContextFactory"
parameter.provider_url = "tibjmsnaming://_hostname_:7222"
parameter.connection_factory_name = "QueueConnectionFactory"
when try to run simple application - got this error:
ERROR {org.apache.axis2.transport.base.BaseUtils} - JNDI lookup of name QueueConnectionFactory returned a com.tibco.tibjms.naming.TibjmsFederatedQueueConnectionFactory while a interface javax.jms.ConnectionFactory was expected
What am I doing wrong?
Tibco EMS 8.5, all 5 jar files from EMS copied to \runtime\microesb\wso2\components\extensions
You may need to check the type of your QueueConnectionFactory connection factory.
Is it defined with type 'queue' or 'generic' ?
you can check this in EMS factories.conf file like below :
[QueueConnectionFactory]
type = queue
Related
I have working code similar to this connecting to google IoT with the paho client.
Since I am in a spring boot reactive application, I would like to use Hive MQTT Client, but I can't find the right setup, I keep having the following error message :
com.hivemq.client.mqtt.exceptions.ConnectionClosedException: Server closed connection without DISCONNECT.
The current code I use :
hiveClient = MqttClient.builder()
.identifier(UUID.randomUUID().toString())
.serverHost("mqtt.googleapis.com")
.serverPort(443)
.useMqttVersion3()
.sslWithDefaultConfig()
.simpleAuth(
Mqtt3SimpleAuth.builder()
.username("unused")
.password(StandardCharsets.UTF_8.encode("// a token string generation that works fine with palo"))
.build()
)
.build()
.toBlocking();
hiveClient.connect(); // Error
It looks like the identifier (client ID) should be set to something other than a UUID. The documentation indicates the client ID should be formed as the following path:
projects/PROJECT_ID/locations/REGION/registries/REGISTRY_ID/devices/DEVICE_ID
Note that all of the requirements for the Google Cloud IoT Core MQTT device bridge are strict, so also verify that Hive is configured as follows:
Mqtt 3.1.1
TLS 1.2
Publish to /devices/DEVICE_ID/events or /devices/DEVICE_ID/state
Subscribe to /devices/DEVICE_ID/config or /devices/DEVICE_ID/commands/#
QoS 0 or 1
Note that if you do not adhere to the requirements, your device gets disconnected. Additional information on the disconnect reason may be available in the logging for your registry visible on the Cloud Console for IoT.
I have "export" proxy service which aims to "obtain" sequence. The sequence points to ${server}/services/sapBapi or "sapBapi" proxy service. The "sapBapi" proxy service points to gov:endpoints/sapbapiendpoint.xml endpoint, where is the concrete address: bapi:/abc
I have abc.dest and abc.server property files with SAP endpoint parameters on path
$WSO2_HOME/repository/conf/sap according to official documentation here
When I want to use "export" proxy service and send data, I will find this in logs:
DEBUG - Started sending message to uri=bapi:/abc/services/sapBapi/services/export {org.wso2.carbon.transports.sap.SAPTransportSender}
WARN - JCo configuration file for the destination : abc/services/sapBapi/services/export does not exist - Please specify the JCo configuration in $WSO2_HOME/conf/sap/abc/services/sapBapi/services/export.dest or abc/services/sapBapi/services/export.dest {org.wso2.carbon.transports.sap.CarbonDestinationDataProvider}
ERROR - Error while sending request to the EPRbapi:/abc/services/sapBapi/services/export {org.wso2.carbon.transports.sap.SAPTransportSender}
com.sap.conn.jco.JCoException: (106) JCO_ERROR_RESOURCE: Destination abc/services/sapBapi/services/export does not exist
When I put export.dest file to path $WSO2_HOME/repository/conf/sap/abc/services/sapBapi/services/, then it works perfectly.
My questions:
Why is it using proxy service name ("export") for the .dest property
file in described case?
Why is it searching for .dest property file
on path $WSO2_HOME/conf/sap/abc/services/sapBapi/services/ instead
of $WSO2_HOME/repository/conf/sap/?
WSO2 version: 6.5.0
I don't know WSO2 Enterprise Integrator, but obviously an instance of class org.wso2.carbon.transports.sap.CarbonDestinationDataProvider is the registered DestinationDataProvider at the JCo runtime. This is the instance that decides alone from where to obtain the logon parameters for a JCoDestination based on the destination name string that it gets from the JCoDestinationManager.
From your example error message, this destination name string seems to be "abc/services/sapBapi/services/export" in this case for which the org.wso2.carbon.transports.sap.CarbonDestinationDataProvider is searching a property file with name abc/services/sapBapi/services/export.dest
I hope this info will help you to adapt your code/configuration to fit your expectations.
I'm trying to catch up with the new realease of the wso2ei 7 and 'm following the new tutorial but I keep getting an error when I start the esb again with the following error
Store [PaymentRequestMessageStore]. Could not initialize JMS Message Store. Error:Failed to create InitialContext using factory specified in hash table.. Initial Context Factory:[org.wso2.andes.jndi.PropertiesFileInitialContextFactory]; Provider URL:[null]; Connection Factory:[null]. javax.naming.NoInitialContextException: Failed to create InitialContext using factory specified in hash table. [Root exception is java.lang.ClassNotFoundException: class org.wso2.andes.jndi.PropertiesFileInitialContextFactory not found]
at org.wso2.micro.core.context.CarbonContextDataHolder$CarbonInitialJNDIContextFactoryBuilder.createInitialContextFactory(CarbonContextDataHolder.java:301)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:681)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.init(InitialContext.java:244)
at javax.naming.InitialContext.(InitialContext.java:216)
...
Can anyone help me with that?
[EDIT]
I started the esb from the cmd and i got a diferent error, I don't know if helps or not...
ERROR {org.apache.axis2.transport.jms.JMSConnectionFactoryManager} - Error setting up connection factory : myQueueSender org.apache.axis2.transport.jms.AxisJMSException: Cannot acquire JNDI context, JMS Connection factory : QueueConnectionFactory or default destination : null for JMS CF : myQueueSender using : {transport.jms.CacheLevel=producer, broker_name=wso2mb, transport.jms.ConnectionFactoryType=queue, java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory, transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory, java.naming.provider.url=conf/jndi.properties}
at org.apache.axis2.transport.jms.JMSConnectionFactory.initJMSConnectionFactory(JMSConnectionFactory.java:188)
at org.apache.axis2.transport.jms.JMSConnectionFactory.(JMSConnectionFactory.java:152)
at org.apache.axis2.transport.jms.JMSConnectionFactoryManager.loadConnectionFactoryDefinitions(JMSConnectionFactoryManager.java:89)
...
While working through the EI Asynchronous Messaging tutorial, you will get this ClassNotFound exception if you don't do the following first:
Download WSO2 Message Broker. The path to this folder is referred to as MB_HOME throughout this tutorial.
Add the following JAR files from the MB_HOME/wso2/broker/client-lib/ directory to the MI_TOOLING_HOME/Contents/Eclipse/runtime/microesb/lib/ (in MacOS) or MI_TOOLING_HOME/runtime/microesb/lib (in Windows) directory.
andes-client-*.jar
geronimo-jms_1.1_spec-*.jar
org.wso2.securevault-*.jar
For me on OSX, the MI_TOOLING_HOME is /Applications/IntegrationStudio.app.
I'm trying to use WSO2SP-4.3.0 as analytics for both WSO2AM-2.6.0 and WSO2EI-6.4.0 (integrator). The only reference I found for this options is mentioned here https://docs.wso2.com/display/SP430/Analytics+Solutions
Setting up ports and solutions map:
analytics.solutions:
APIM-analytics.enabled: true
EI-analytics.enabled: true
running a worker and dashboard of the SP
Seems the stream definitions for loganalyzer is not loaded, worker throws following exceptions:
ERROR {org.wso2.carbon.databridge.core.internal.queue.QueueWorker} - Dropping wrongly formatted event sent
org.wso2.carbon.databridge.core.exception.EventConversionException: Error when converting loganalyzer:1.0.0 of event bundle with events 1
...
Caused by: org.wso2.carbon.databridge.core.exception.EventConversionException:
No StreamDefinition for streamId loganalyzer:1.0.0 present in cache
...
...
I haven't find source of the loganalyzer stream definition (even in the original ws2am-analytics-2.6.0 package).
Any help is appreciated (or shall I just disable the DAS_AGENT from APIM)?
This seems like a configuration issue. It might be easier to try one at a time to narrow down the problem. I suggest you follow [EI-Analytics] Configure WSO2 SP for WSO2 EI to configure EI analytics with SP with enabling EI analytics first.
Running Netbeans 6.5.1 with OpenESB (Glassfish-full-installer-windows2.1).
I'm using this tutorial (http://www.youtube.com/watch?v=a76RxkzB4Bg) as reference to orchestrate web services by calling a local WSDL that invokes an external WSDL (http://www.webservicex.net/CreditCard.asmx?WSDL). I have my BPEL ready
and my Composite Application created, it automatically binds a SOAP call from my local WSDL to the BPEL (Consumer to Producer), I had to drag and drop another SOAP object and configure it with the same interface as my local WSDL to receive the output from the invoke action (is that correct?).
When I run my test case selecting the operation from my local WSDL, I get the following SoapResponse:
<SOAP-ENV:Fault>
<faultcode xmlns="">SOAP-ENV:Server</faultcode>
<faultstring xmlns="">BPCOR-6135: A fault was not handled in the process scope; Fault Name is {http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling}systemFault; Fault Data is &a....Sending errors for the pending requests in the process scope before terminating the process instance</faultstring>
<faultactor xmlns="">sun-bpel-engine</faultactor>
<detail xmlns="">
<detailText>BPCOR-6135: A fault was not handled in the process scope; Fault Name is {http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling}systemFault; Fault Data is &a... Sending errors for the pending requests in the process scope before terminating the process instance
Caused by: BPCOR-6131: An Error status was received while doing an invoke (partnerLink=externalBPELImplementation, portType={http://www.webservicex.net}CCCheckerSoap, operation=ValidateCardNumber)
BPCOR-6129: Line Number is 37
BPCOR-6130: Activity Name is Invoke1
Caused by: HTTP Status-Code 404: Not Found - Not Found</detailText>
</detail>
I've created a separated project to test the external WSDL and it is validating credit card numbers as expected, there's something wrong with my BPEL or my Composite Application.
If I create another test case and select the local port that is created when I drag and drop the Soap object into the Comp. App. Design interface, I get a different error:
Dec 24, 2012 12:54:11 AM com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection call
SEVERE: SAAJ0006: Bad URL (endPoint instance of String)
java.net.MalformedURLException: no protocol:
any ideas?
Your process seams to be correct (at the first look).
It looks like your process can't find the service you ask:
BPCOR-6130: Activity Name is Invoke1 - Caused by: HTTP Status-Code 404: Not Found - Not Found
Is your "soap adress" in the wsdl you imported correct ?
Have you try to overload the url in the bpel mapping ? (Properties -> SOAP HTTP BC -> Outbound -> UR)
There is also something strnage in your CASA: If you are trying to consume "localCreditCard_WSDLPort" and expose in OpenESB "casaPort1", the SOAP Binding are inversed. The arrow should start from casaPort1 and finish at localCreditCard_WSDLPort.
I hope this could help you,
Simon
According to #brasseld from www.open-esb.net
In fact, you've made two mistake :
The first one, for your unit test, you have to use the good WSDL which come from the BPEL because you've created a concrete SOAP WSDL
(CreditCard_WSDL.wsdl).
Then, when you create a new port in your composite application for your plnk externalServiceCard_WSDL, you have to set the soap address
location by right-click > properties. By default, this one is set to
localhost:${HttpDefaultPort}/compositeapp/casaportX?wsdl that's why
you encounter your errors (404 or bad url error).
Based on his suggestions, I've decided to document the development process step-by-step, here's the result:
http://www.youtube.com/watch?v=-1W1xR3-iJQ