[Beginner's Corner] - MQ Howto?
by Thinus Pollard
Thinus Pollard [https://community.jboss.org/people/thinusp] created the discussion
"MQ Howto?"
To view the discussion, visit: https://community.jboss.org/message/777123#777123
--------------------------------------------------------------
Hi All
Pretty new to the whole JBoss thing.
I am looking for a Howto or something on getting MQ and Message Driven Beans to play nice. I've installed MQ (7.1.0-2) and latest nightly build of JBoss 7.2. (there is a bug in 7.1.1 where MDB's where not activated when a message is placed on a Queue).
I've deployed the resource adapter and it seems to deploy sucessfully. My MDB has an activation config via annotations. Upon deployment of the EAR project I get a RemoteFAP<init> NoSuchMethodException referring to the constructor for the RemoteFAP class. I have inspected the jar file (JMQI MQ jar file) and the constructor is definitly there.
So my initial questions are:
* Is there a step by step tutorial somewhere that shows how to get MQ working with JBoss for the above mentioned versions?
* Failing that, which MQ jars should be included in my EAR? (currently I have the com.ibm.mq, jmqi and jms jars included at this point in time).
Currently I have no idea where the issues may be hiding (is it MQ or the fact that I'm trying to use the nightly JBoss build). Any pointers would be appreciated.
Thinus
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/777123#777123]
Start a new discussion in Beginner's Corner at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 7 months
[JBoss Web Services] - Is it possible to configure JAX-WS services with an external descriptor?
by Carlo Bonamico
Carlo Bonamico [https://community.jboss.org/people/carlo.bonamico] created the discussion
"Is it possible to configure JAX-WS services with an external descriptor?"
To view the discussion, visit: https://community.jboss.org/message/762155#762155
--------------------------------------------------------------
Hi,
I had to manage a situation similar to https://community.jboss.org/thread/146575 https://community.jboss.org/thread/146575 where a JBoss instance publishes a JaxWs service (annotated with @WebService) on plain http:// http:// on an internal network, and an external Apache httpd server with mod_proxy or mod_jk re-publishes the service over https:// https:// on the outside. The environment is JBoss-WS on JBoss AS 5.1.0.
In order to be able to rewrite the soap:address field in the WSDL I successfully followed @asoldano advice:
>Something else you might want to try is setting your soap:address to something like " https://replace-me/ https://REPLACE-ME", that should force the https protocol to be use in the soap:address when rewriting it. I think this probably has the side effect of overwriting the webServicePort you might want to >specify though.
Then enabled rewriting of the address in
jbossws.deployer/META-INF/jboss-beans.xml
<bean name="ServiceEndpointManager" class="org.jboss.ws.server.ServiceEndpointManager">
<!--
The WSDL, that is a required deployment artifact for an endpoint, has a <soap:address>
element which points to the location of the endpoint. JBoss supports rewriting of that SOAP address.
If the content of <soap:address> is a valid URL, JBossWS will not rewrite it unless AlwaysModifySOAPAddress is true.
If the content of <soap:address> is not a valid URL, JBossWS will rewrite it using the attribute values given below.
-->
<property name="webServiceHost">www.external.domain.com</property>
<property name="webServiceSecurePort">443</property>
<property name="alwaysModifySOAPAddress">true</property>
...
</bean>
In this way the resulting url exposed in the wsdl is https://www.external.domain.com/path/ https://www.external.domain.com/path/... which is what I needed to achieve.
However, apparently this only works for services which have an associated wsdl file provided by the developer (@WebService(wsdlLocation = "WEB-INF/...")) in the deployment. I would like to enable a similar behavior on services which have only the defining implementation class.
Is it possible to associate to an @WebService class an external deployment descriptor which only specifies soap:address and/or other specific jaxws parameters, without having to explcitely create (and obviously maintain over time) the wsdlby hand?
In general, I think that this scenario is not so uncommin, and it would be useful to have a parameter as suggested by @asoldano to simply enable rewriting of http:// into https://
>If nothing of this helps, please create a feature request jira. We might think about adding another configuration option (webServiceProtocol) and achieve what you want throught that.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/762155#762155]
Start a new discussion in JBoss Web Services at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 7 months
[JBoss Web Services] - Performance Issues with ?wsdl
by spyhunter99
spyhunter99 [https://community.jboss.org/people/spyhunter99] created the discussion
"Performance Issues with ?wsdl"
To view the discussion, visit: https://community.jboss.org/message/758131#758131
--------------------------------------------------------------
Jboss 5.1.0GA, JbossWS native 3.4.0
also present in Jboss 5.1.2 eap with JbossWS native 3.1.2sp13
I've been noticing that each time something requests the wsdl from my web service endpoint, there is a huge spike in CPU usage on the server. Upon further investigation, I checked out the class definition for the service
@WebService(serviceName="service1", name="service1", targetNamespace="urn:service1")
public class Service1Impl
{
//stuff
}
and then compared the wsdl presented by Jbossws with the one I had started with (top down) and they were different so I'm assuming that in this case, JbossWS generates a wsdl on the fly using reflection. The problem is that this is on every request. This probably should be cached somehow.
Continuing the investigation, I tried adding the wsdlLocation parameter to the class and deployed.
@WebService(serviceName="service1", name="service1", targetNamespace="urn:service1", wsdlLocation="WEB-INF/wsdl/my.wsdl")
public class Service1Impl
{
//stuff
}
The ?wsdl url now returns the same wsdl that I had created from the top down approach, which is good, however I'm still getting a significant delay when loading the ?wsdl endpoint and high CPU usage when pressing refresh a bunch of times. I'm not sure what's happening, but there should be no to little delay for this after the first time the wsdl is presented. It seems clear that there is no caching mechanism.
Question 1: how can I reduce the CPU usage and delay for returning the service?wsdl endpoint?
Question 2: is there a way to disable the auto generation of ?wsdl url and replace it with something else?
Question 3: is there any kind of cache mechanism that exists to resolve this?
Question 4: does the cxf stack provide any way to resolve this?
A few notes: all supporting files (i.e. imports) MUST be in WEB-INF/wsdl), if placed anywhere else, deployment tends to fail. My web service is actually a seperate jar bundled within a WAR file and thus the wsdl/xsd files must bein the WAR's WEB-INF/wsdl folder.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/758131#758131]
Start a new discussion in JBoss Web Services at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&con...]
11 years, 7 months