[Design of JBoss Web Services] - Re: JBossWS Deployers Integration
by alessio.soldano@jboss.com
Hi Richard,
I've taken a look at the current state of ws deployers, here are 2 questions:
- I see there're now 5 deployers: WSDescriptorDeployer, WSEJBAdapterDeployer, WSTypeDeployer, WSDeploymentDeployer and WSDeploymentAspectDeployer. AFAICS we get an instance of the latter for each DeploymentAspect (the deployment aspect concept is still there). So, what's actually the reason for doing this, instead of having an actual separate deployer for each of the current deployment aspect, instead of doing the wrap process into WSDeploymentAspectDeployer? Wouldn't it be clearer?
- the ws DeploymentAspect ordering is still there, so far so good. It's actually used to provide additional input/output to the created WSDeploymentAspectDeployer instances. AFAIK the requires/provides attributes there define a correct ordering (and if they do not, we can fix that as that's all our stuff). So my question is, why is relativeOrder required for all the deployment aspects turning into WSDeploymentAspectDeployer instances? I though the relativeOrder is needed only when dealing with "filters" (deployers with the same input and output, whose processing order is not established otherwise), but here we'd probably need the relativeOrder prop just for the first and last WSDeploymentAspectDeployer. Of course if we do what I wrote in the previous point, we'd have different deployers, with just two of then having the relativeOrder prop. (excluding the other 4 real deployers we already have)
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4248194#4248194
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4248194
16 years, 8 months
[Design of JBoss Portal] - Problem with Portlet Container
by bromokun
Hi jboss protlet container contributors :)
I want to make a lightweight portal for my company intranet. so I was thingking of using JBoss Portlet Container as a base.
I don't want to use current JBoss portal because it has to be deploy on top of JBoss AS which I think is too heavy weight ... because I don't want to use its EJB or MDB or Seam or JMS or all those unnecessary things (I compare this to other portal like jetspeed and others that only need simple servlet container such as Tomcat)
So I decided to try my luck on building it from JBoss Portlet Container. I managed to run simple-portal (bundled with JBoss portlet container download file), I even managed to create my custom page based on that ...
But when I use Spring ... it seems that portal tag was not rendered the right way ... this is my web.xml:
------------------------------------------------------------------------------------
WEB.XML:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- FILTERS BY JBOSS PORTLET CONTAINER -->
<filter-name>ErrorHandlingFilter</filter-name>
<filter-class>org.jboss.portal.portlet.portal.ErrorHandlingFilter</filter-class>
<filter-name>ControllerFilter</filter-name>
<filter-class>org.jboss.portal.portlet.portal.jsp.ControllerFilter</filter-class>
<filter-mapping>
<filter-name>ErrorHandlingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ControllerFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<!-- LISTENER BY JBOSS CONTAINER -->
<listener-class>org.jboss.portal.common.mc.bootstrap.WebBootstrap</listener-class>
<!-- SERVLETS BY JBOSS CONTAINER -->
<servlet-name>ContainerServlet</servlet-name>
<servlet-class>org.jboss.portal.web.impl.tomcat.TC6ContainerServlet</servlet-class>
<load-on-startup>0</load-on-startup>
<!-- SPRING -->
<servlet-name>webos</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<servlet-mapping>
<servlet-name>webos</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
---------------------------------------------------------------------------------
SPRINT-BEAN.XML:
<!-- View Resolver -->
----------------------------------------------------------------------------------
When I open my first page which is a login page that managed by Spring controller ... everything is fine ... but after I click on submit button, and spring controller try to open a page that contains PORTLET, it throws this error:
SEVERE: Servlet.service() for servlet webos threw exception
java.lang.ClassCastException: org.apache.catalina.connector.ResponseFacade cannot be cast to org.jboss.portal.portlet.portal.jsp.PortalResponse
at org.jboss.portal.portlet.portal.jsp.taglib.PortalBodyTagSupport.getPortalResponse(Unknown Source)
at org.jboss.portal.portlet.portal.jsp.taglib.PortalBodyTagSupport.doStartTag(Unknown Source)
at org.apache.jsp.WEB_002dINF.jsp.test_jsp._jspx_meth_portal_005fpage_005f0(test_jsp.java:94)
at org.apache.jsp.WEB_002dINF.jsp.test_jsp._jspService(test_jsp.java:72)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:240)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:252)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1173)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:901)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
It seems that spring request on the portlet contained page was failed to
parse <portal:page> tag ... maybe this is because some how spring cannot trigger JBpss portlet framework or what ever.
Please give me some ways to work arround this.
Thankyou all in advanced
Best regards
Bromo
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4248191#4248191
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4248191
16 years, 8 months
[Design of JBoss ESB] - Re: Should JmsCourier be allowed to overwrite outgoing JMS M
by beve
anonymous wrote : Have you got an example which shows this going wrong?
The example here is an action that uses the ServiceInvoker to call another service in the ESB. This called service uses a MEP (Message Exchange Pattern) of 'RequestResponse'.
Having multiple of these actions in the pipeline would cause the 'jbossESBresponseUUID' to stay unchanged, which will cause message pickup to fail as there is no match for the new selector.
anonymous wrote : If this is specific to the transport then we should aim to have the transport clean it up before the message is delivered and not have it leak through. Can you see an easy way to do this?
We could set specify a filter pattern for the DefaultESBPropertiesSetter:
| /**
| * Filter pattern for incoming property keys. These are properties that should not be
| * extracted from the JMS Message object into the ESB Message object.
| */
| private static final String INPUT_PROPERTIES_FILTER = DefaultJmsReplyToEpr.REPLY_UUID_TAG;
|
| /**
| * Strategy for setting JMS Properties on the ESB Message object created
| * by the process method.
| */
| private ESBPropertiesSetter esbPropertiesStrategy = new DefaultESBPropertiesSetter(INPUT_PROPERTIES_FILTER);
|
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4248139#4248139
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4248139
16 years, 8 months
[Design of JBoss ESB] - Should JmsCourier be allowed to overwrite outgoing JMS Messa
by beve
Jira: https://jira.jboss.org/jira/browse/JBESB-2771
When a JmsCourier is created and is specified to be a sender (isReciever=false), the passed in JMSEPR's message selectors is stored in a field (_messageProperties which is a List of KeyValuePairs).
When this JmsCourier is going to deliver a JMS Message it will iterate through the properties and set them on the outgoing JMS Message:
for (KeyValuePair kvp : _messageProperties) {
| String key = kvp.getKey();
| if(message.getStringProperty(key) == null) {
| message.setStringProperty(key, kvp.getValue());
| }
The problem here is that the current implementation will first check to see if the JMS Message already has a property with the same key set on it, and if it has, will not overwrite the value.
This is a problem because before this is done the JMSPropertiesStrategy will have been run and might for example have set the 'jbossESBresponseUUID' causing and old and invalid message selector to be passed through.
This can be fixed by letting the JmsCourier have the last say and overwrite message properties. Or an explicit check could be add for 'jbossESBresponseUUID'.
Any thoughts on this?
Thanks,
/Daniel
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4248128#4248128
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4248128
16 years, 8 months