[JCA/JBoss] - Configuration of JCA Inflow Resource Adapter
by garethevans
I'm using jboss4.0.5.GA to connect to a legacy system via tcp. To do this I'm using a JCA inflow resource connected to an MDB. This is currently working as expected. My question how can I configure this in a maintainable way?
Currently the configuration sits within the ejb-jar.xml and jboss.xml files that are built into my ear file. An extract of my ejb-jar file is shown below:
<activation-config-property>
| <activation-config-property-name>txPort</activation-config-property-name>
| <activation-config-property-value>10001</activation-config-property-value>
| </activation-config-property>
|
| <activation-config-property>
| <activation-config-property-name>rxPort</activation-config-property-name>
| <activation-config-property-value>10002</activation-config-property-value>
| </activation-config-property>
|
| <activation-config-property>
| <activation-config-property-name>acknowledgementTimeout</activation-config-property-name>
| <activation-config-property-value>2000</activation-config-property-value>
| </activation-config-property>
|
| <activation-config-property>
| <activation-config-property-name>numberOfRetries</activation-config-property-name>
| <activation-config-property-value>3</activation-config-property-value>
| </activation-config-property>
|
Depending on customer requirements, I will need to change the port numbers etc, and even deploy more that one of these per install. Currently the only way i can find to do this is to change the jboss.xml and the ejb-jar.xml file.
Is there any way of configuring these outside of an ear file?
Can I configure this within a -ds.xml file even though I'm only using an inflow resource adapter?
Could I deploy these using a -service.xml file?
Thanks,
Gareth
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4058668#4058668
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4058668
18Â years, 9Â months
[JBoss Seam] - Re: access the entityManager in a converter (seam 2 beta)
by adrien.loyat
the stack trace :
Exception during request processing:
| Caused by javax.servlet.ServletException with message: "EntityManager is closed"
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:63)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:87)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:63)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:46)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
| org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
| org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:40)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:140)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
| org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| java.lang.Thread.run(Thread.java:595)
|
| Caused by java.lang.IllegalStateException with message: "EntityManager is closed"
|
| org.hibernate.ejb.EntityManagerImpl.getSession(EntityManagerImpl.java:42)
| org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:447)
| org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:442)
| org.jboss.seam.persistence.EntityManagerProxy.joinTransaction(EntityManagerProxy.java:120)
| org.jboss.seam.framework.EntityIdentifier.find(EntityIdentifier.java:25)
| org.jboss.seam.ui.converter.EntityConverterStore.get(EntityConverterStore.java:43)
| org.jboss.seam.ui.converter.EntityConverter.getAsObject(EntityConverter.java:81)
| org.jboss.seam.ui.converter.PrioritizableConverter.getAsObject(PrioritizableConverter.java:61)
| org.jboss.seam.ui.converter.ConverterChain.getAsObject(ConverterChain.java:107)
| com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:152)
| com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectOneValue(MenuRenderer.java:197)
| com.sun.faces.renderkit.html_basic.MenuRenderer.getConvertedValue(MenuRenderer.java:359)
| javax.faces.component.UIInput.getConvertedValue(UIInput.java:934)
| javax.faces.component.UIInput.validate(UIInput.java:860)
| javax.faces.component.UIInput.executeValidate(UIInput.java:1065)
| javax.faces.component.UIInput.processValidators(UIInput.java:666)
| javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1030)
| javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1030)
| javax.faces.component.UIForm.processValidators(UIForm.java:229)
| javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1030)
| javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:662)
| org.ajax4jsf.framework.ajax.AjaxViewRoot.access$201(AjaxViewRoot.java:53)
| org.ajax4jsf.framework.ajax.AjaxViewRoot$3.invokeRoot(AjaxViewRoot.java:315)
| org.ajax4jsf.framework.ajax.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:53)
| org.ajax4jsf.framework.ajax.AjaxContext.invokeOnRegionOrRoot(AjaxContext.java:191)
| org.ajax4jsf.framework.ajax.AjaxViewRoot.processValidators(AjaxViewRoot.java:329)
| com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)
| com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
| com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
| org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:63)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:87)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:63)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:46)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
| org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
| org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:40)
| org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
| org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:140)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
| org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
| org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
| org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
| org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
| org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
| java.lang.Thread.run(Thread.java:595)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4058663#4058663
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4058663
18Â years, 9Â months
[JBoss Seam] - Re: Seam gen edit pages, update without press save button
by rbcdexia
"rbcdexia" wrote : I have an object "Operacion" that has inside an object "Entidad".
| I want to edit my Operation object.I want to change Entidad field in Operacion, so for this reason I have to press the botton. When I press the button I show a list of Entidad objects to select one of them. Then when I return to my page seam executes the update of Operaction always.
| I have done some test using properties like bypassUpdates but seam continues doing the update.
|
|
|
This is my complete edit page:
| <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
| <ui:composition xmlns="http://www.w3.org/1999/xhtml"
| xmlns:s="http://jboss.com/products/seam/taglib"
| xmlns:ui="http://java.sun.com/jsf/facelets"
| xmlns:f="http://java.sun.com/jsf/core"
| xmlns:h="http://java.sun.com/jsf/html"
| xmlns:a="https://ajax4jsf.dev.java.net/ajax"
| xmlns:rich="http://richfaces.ajax4jsf.org/rich"
| template="layout/template.xhtml">
|
| <ui:define name="body">
|
| <h:messages globalOnly="true" styleClass="message" id="globalMessages"/>
|
| <h:form id="operacion" styleClass="edit">
|
| <rich:panel>
| <f:facet name="header">Edit Operacion</f:facet>
|
|
| <s:decorate id="ctapersonasidDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Id Cuenta en personas</ui:define>
| <h:inputText id="ctapersonasid"
| required="true"
| disabled="#{operacionHome.managed}"
| value="#{operacionHome.instance.ctapersonasid}">
| <a:support bypassUpdates="true" event="onblur" reRender="ctapersonasidDecoration"/>
| </h:inputText>
| </s:decorate>
|
| <s:decorate template="layout/display.xhtml">
| <ui:define name="label">Fecha</ui:define>
| <h:inputText id="fechaDecoration2" value="#{operacionHome.instance.fecha}" required="true">
| <s:convertDateTime pattern="MM/dd/yyyy"/>
| </h:inputText>
| <s:selectDate for="fechaDecoration2" startYear="1910" endYear="2007"><img src="img/calendar.gif"/></s:selectDate>
| </s:decorate>
| <!--<s:decorate id="fechaDecoration" template="layout/edit.xhtml">
| <ui:define name="label">fecha</ui:define>
| <h:inputText id="fecha"
| size="16"
| required="true"
| value="#{operacionHome.instance.fecha}">
| <s:convertDateTime type="both" dateStyle="short"/>
|
| </h:inputText>
| </s:decorate>-->
|
| <s:decorate id="volumenDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Volumen</ui:define>
| <h:inputText id="volumen"
| required="true"
| value="#{operacionHome.instance.volumen}"
| size="27">
| <a:support bypassUpdates="true" event="onblur" reRender="volumenDecoration"/>
| </h:inputText>
| </s:decorate>
|
| <s:decorate id="precioDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Precio</ui:define>
| <h:inputText id="precio"
| required="true"
| value="#{operacionHome.instance.precio}"
| size="27">
| <a:support bypassUpdates="true" event="onblur" reRender="precioDecoration"/>
| </h:inputText>
| </s:decorate>
|
| <s:decorate id="tipoprecioDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Tipo de precio</ui:define>
| <h:inputText id="tipoprecio"
| required="true"
| value="#{operacionHome.instance.tipoprecio}">
| <a:support bypassUpdates="true" event="onblur" reRender="tipoprecioDecoration"/>
| </h:inputText>
| </s:decorate>
|
| <s:decorate id="divisaidDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Id Divisa</ui:define>
| <h:inputText id="divisaid"
| required="true"
| value="#{empty divisaDivisaid ? operacionHome.instance.divisaid : operacionHome.instance.divisaid}">
|
| <a:support bypassUpdates="true" event="onblur" reRender="divisaidDecoration"/>
| </h:inputText>
| </s:decorate>
|
| <s:decorate id="activoidDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Id Activo</ui:define>
| <h:inputText id="activoid"
| required="true"
| value="#{empty activoActivoid ? operacionHome.instance.activoid : operacionHome.instance.activoid}">
|
| <a:support bypassUpdates="true" event="onblur" reRender="activoidDecoration"/>
| </h:inputText>
| </s:decorate>
| <s:decorate id="mercadoidDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Id mercado</ui:define>
| <h:inputText id="mercadoid"
| required="true"
| value="#{empty mercadoMercadoid ? operacionHome.instance.mercadoid : operacionHome.instance.mercadoid}">
|
| <a:support bypassUpdates="true" event="onblur" reRender="activoidDecoration"/>
| </h:inputText>
| </s:decorate>
| <s:decorate id="botonDivisa" template="layout/edit.xhtml">
| <ui:define name="label">Seleccionar Divisa</ui:define>
| <s:button value="Select divisa"
| view="/DivisaAccion.xhtml">
| <f:param name="from" value="OperacionEdit"/>
| </s:button>
| </s:decorate>
|
| <s:decorate id="botonActivo" template="layout/edit.xhtml">
| <ui:define name="label">Seleccionar Activo</ui:define>
| <s:button value="Select activo"
| view="/ActivoAccion.xhtml">
| <f:param name="from" value="OperacionEdit"/>
| </s:button>
| </s:decorate>
|
| <s:decorate id="botonMercado" template="layout/edit.xhtml">
| <ui:define name="label">Seleccionar Mercado</ui:define>
| <s:button value="Select mercado"
| view="/MercadoAccion.xhtml">
| <f:param name="from" value="OperacionEdit"/>
| </s:button>
| </s:decorate>
|
| <s:decorate id="tipoDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Tipo</ui:define>
| <h:inputText id="tipo"
| required="true"
| value="#{operacionHome.instance.tipo}">
| <a:support bypassUpdates="true" event="onblur" reRender="tipoDecoration"/>
| </h:inputText>
| </s:decorate>
|
| <s:decorate id="sistemaDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Sistema</ui:define>
| <h:inputText id="sistema"
| required="true"
| value="#{operacionHome.instance.sistema}">
| <a:support bypassUpdates="true" event="onblur" reRender="sistemaDecoration"/>
| </h:inputText>
| </s:decorate>
|
| <s:decorate id="referenciaDecoration" template="layout/edit.xhtml">
| <ui:define name="label">Referencia</ui:define>
| <h:inputText id="referencia"
| required="true"
| size="13"
| maxlength="13"
| value="#{operacionHome.instance.referencia}">
| <a:support bypassUpdates="true" event="onblur" reRender="referenciaDecoration"/>
| </h:inputText>
| </s:decorate>
|
| <div style="clear:both">
| <span class="required">*</span>
| required fields
| </div>
|
| </rich:panel>
|
| <div class="actionButtons">
|
| <h:commandButton id="save"
| value="Save"
| action="#{operacionHome.persist}"
| disabled="#{!operacionHome.wired}"
| rendered="#{!operacionHome.managed}"/>
|
| <h:commandButton id="update"
| value="Save"
| action="#{operacionHome.update}"
| rendered="#{operacionHome.managed}"/>
|
| <h:commandButton id="delete"
| value="Delete"
| action="#{operacionHome.remove}"
| rendered="#{operacionHome.managed}"/>
|
| <s:button id="done"
| value="Done"
| propagation="end"
| view="/Operacion.xhtml"
| rendered="#{operacionHome.managed}"/>
|
| <s:button id="cancel"
| value="Cancel"
| propagation="end"
| view="/#{empty operacionFrom ? 'OperacionList' : operacionFrom}.xhtml"
| rendered="#{!operacionHome.managed}"/>
|
| </div>
| </h:form>
|
| <rich:tabPanel switchType="ajax">
|
| <rich:tab label="entidad *" labelClass="required">
| <div class="association" id="entidadParent">
|
| <h:outputText value="No entidad"
| rendered="#{operacionHome.instance.entidad == null}"/>
|
| <rich:dataTable var="entidad"
| value="#{operacionHome.instance.entidad}"
| rendered="#{operacionHome.instance.entidad != null}"
| rowClasses="rvgRowOne,rvgRowTwo"
| id="entidadTable"
| bypassUpdates="true">
| <h:column>
| <f:facet name="header">empresa</f:facet>
| #{entidad.empresa.nombre}
| </h:column>
| <h:column>
| <f:facet name="header">nombre</f:facet>
| #{entidad.nombre}
| </h:column>
| <h:column>
| <f:facet name="header">numerocnmv</f:facet>
| #{entidad.numerocnmv}
| </h:column>
| <h:column>
| <f:facet name="header">isin</f:facet>
| #{entidad.isin}
| </h:column>
| </rich:dataTable>
|
| <div class="actionButtons">
| <s:button value="Select entidad" bypassUpdates="true"
| view="/EntidadList.xhtml">
| <f:param name="from" value="OperacionEdit"/>
| </s:button>
| </div>
|
| </div>
| </rich:tab>
| </rich:tabPanel>
| </ui:define>
|
| </ui:composition>
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4058655#4058655
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4058655
18Â years, 9Â months