[JBoss AOP] - Re: probleam in granularity of interception
by fabiocsilva
Weaving mode: compile-time
jboss-aop.xml:
|
|
| <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
| <aop>
|
| <aspect class="aspects.distribution.HealthWatcherServerSideAspect"
| scope="PER_VM" />
|
| <aspect class="aspects.distribution.HealthWatcherClientSideAspect"
| scope="PER_VM" />
|
|
|
| <aspect class="aspects.dataManagement.nonpersistent.DataCollectionNonPersistent"
| scope="PER_VM" />
|
|
| <!--
| <aspect class="aspects.dataManagement.persistent.DataCollectionPersistent"
| scope="PER_VM" />
| -->
|
|
| <aspect class="aspects.dataManagement.persistent.PersistenceControlHealthWatcher"
| scope="PER_VM" />
|
|
| <introduction
| expr="class(complaint.ComplaintRecord)
| OR class(healthGuide.HealthUnitRecord)
| OR class(healthGuide.MedicalSpecialtyRecord)
| OR class(employee.EmployeeRecord)
| OR class(complaint.DiseaseRecord)">
| <mixin>
| <interfaces>
| aspects.dataManagement.util.SystemRecord
| </interfaces>
| <class>aspects.dataManagement.util.SystemRecordImpl</class>
| <construction>
| new aspects.dataManagement.util.SystemRecordImpl()
| </construction>
| </mixin>
| </introduction>
|
|
| <pointcut
| expr="execution(public void gui.servlets.ServletWebServer->init(javax.servlet.ServletConfig))"
| name="facadeMainExecution" />
|
| <bind pointcut="facadeMainExecution">
| <advice
| aspect="aspects.distribution.HealthWatcherServerSideAspect"
| name="beforeFacadeMainExecution" />
| </bind>
|
|
| <pointcut name="facadeCallers"
| expr="within($instanceof{javax.servlet.http.HttpServlet})" />
|
|
| <pointcut name="facadeCalls"
| expr="call(* controllers.HealthWatcherFacade->*(..)) AND !call(static * controllers.HealthWatcherFacade->*(..))" />
|
|
|
| <bind pointcut="facadeCallers AND facadeCalls">
| <advice
| aspect="aspects.distribution.HealthWatcherClientSideAspect"
| name="aroundFacadeLocalCalls" />
| </bind>
|
| <!--
| <pointcut name="recordsCreation"
| expr="all($instanceof{aspects.dataManagement.util.SystemRecord}) AND !within($instanceof{aspects.dataManagement.AbstractDataCollectionCustomization})" />
| -->
|
| <pointcut name="recordsCreation"
| expr="call(employee.EmployeeRecord->new(..))" />
|
| <bind pointcut="recordsCreation">
| <advice
| aspect="aspects.dataManagement.nonpersistent.DataCollectionNonPersistent"
| name="aroundRecordsCreation" />
| <!--
| <advice
| aspect="aspects.dataManagement.persistent.DataCollectionPersistent"
| name="aroundRecordsCreation" />
| -->
| </bind>
|
|
|
| <pointcut name="connectionOperations" expr="call(void IPersistenceMechanism->connect()) OR
| call(void IPersistenceMechanism->disconnect())" />
|
|
|
|
|
|
| <pointcut name="obtainPmInstance"
| expr="call(* aspects.dataManagement.dataCollections.rdbms.PersistenceMechanismRDBMS->getInstance(..))" />
|
|
|
| <pointcut name="initSystem"
| expr="call(controllers.HealthWatcherFacade->new())" />
|
| <bind pointcut="initSystem">
| <advice
| aspect="aspects.dataManagement.persistent.PersistenceControlHealthWatcher"
| name="adviceInitSystem" />
| </bind>
|
|
|
| </aop>
|
|
|
ServletInit.java
|
|
| package gui.servlets;
|
|
|
| import java.io.IOException;
|
|
|
| import javax.servlet.ServletConfig;
|
| import javax.servlet.ServletException;
|
| import javax.servlet.http.HttpServlet;
|
| import javax.servlet.http.HttpServletRequest;
|
| import javax.servlet.http.HttpServletResponse;
|
|
|
| import controllers.HealthWatcherFacade;
|
| import employee.EmployeeRecord;
|
|
| public class ServletInit extends HttpServlet {
|
|
|
|
|
|
|
|
|
|
|
| public void init(ServletConfig config) throws ServletException {
|
| HealthWatcherFacade.getInstance();
|
|
|
| }
|
|
|
| public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
| HealthWatcherFacade.getInstance();
|
|
|
| }
|
|
|
| public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
| HealthWatcherFacade.getInstance();
|
| }
|
| }
|
|
HealthWatcherFacade.java
|
|
| package controllers;
|
|
|
| import complaint.*;
|
| import employee.Employee;
|
| import employee.EmployeeRecord;
|
| import exceptions.ObjectAlreadyInsertedException;
|
| import exceptions.ObjectNotFoundException;
|
| import exceptions.ObjectNotValidException;
|
| import healthGuide.HealthUnit;
|
| import healthGuide.HealthUnitRecord;
|
| import healthGuide.MedicalSpecialtyRecord;
|
| import util.IteratorHW;
|
|
|
|
|
| public class HealthWatcherFacade {
|
|
|
| private static HealthWatcherFacade singleton;
|
| private ComplaintRecord complaintRecord;
|
| private HealthUnitRecord healthUnitRecord;
|
| private MedicalSpecialtyRecord specialtyRecord;
|
| private DiseaseRecord diseaseRecord;
|
| private EmployeeRecord employeeRecord;
|
|
|
| private HealthWatcherFacade() {
|
| complaintRecord = new ComplaintRecord(null);
|
| healthUnitRecord = new HealthUnitRecord(null);
|
| specialtyRecord = new MedicalSpecialtyRecord(null);
|
| diseaseRecord = new DiseaseRecord(null);
|
| employeeRecord = new EmployeeRecord(null);
|
| }
|
| public synchronized static HealthWatcherFacade getInstance() {
|
| if (singleton == null) {
|
| singleton = new HealthWatcherFacade();
|
| }
|
|
|
| return singleton;
|
| }
|
|
|
| public Employee searchEmployee(String login) throws ObjectNotFoundException {
|
| return employeeRecord.search(login);
|
| }
|
| public void update(Employee employee) throws ObjectNotFoundException, ObjectNotValidException {
|
| employeeRecord.update(employee);
|
| }
|
| public void insert(Employee employee) throws ObjectAlreadyInsertedException, ObjectNotValidException {
|
| employeeRecord.insert(employee);
|
| }
|
|
|
| public int insert(Complaint complaint) throws ObjectAlreadyInsertedException, ObjectNotValidException {
|
| return complaintRecord.insert(complaint);
|
| }
|
| public void update(Complaint complaint) throws ObjectNotFoundException, ObjectNotValidException {
|
| complaintRecord.update(complaint);
|
| }
|
| public Complaint searchComplaint(int complaintCode) throws ObjectNotFoundException {
|
| return complaintRecord.search(complaintCode);
|
| }
|
| public void update(HealthUnit unit) throws ObjectNotFoundException, ObjectNotValidException {
|
| healthUnitRecord.update(unit);
|
| }
|
| public HealthUnit searchHealthUnit(int healthUnitCode) throws ObjectNotFoundException {
|
| return healthUnitRecord.search(healthUnitCode);
|
| }
|
| public IteratorHW searchHealthUnitsBySpecialty(int specialtyCode) throws ObjectNotFoundException {
|
| return healthUnitRecord.searchHealthUnitsBySpecialty(specialtyCode);
|
| }
|
| public IteratorHW getHealthUnitList() throws ObjectNotFoundException {
|
| return healthUnitRecord.getHealthUnitList();
|
| }
|
| public IteratorHW searchSpecialtiesByHealthUnit(int healthUnitCode) throws ObjectNotFoundException {
|
| return healthUnitRecord.searchSpecialtiesByHealthUnit(healthUnitCode);
|
| }
|
| public IteratorHW getComplaintList() throws ObjectNotFoundException {
|
| return complaintRecord.getComplaintList();
|
| }
|
| public IteratorHW getSpecialtyList() throws ObjectNotFoundException {
|
| return specialtyRecord.getSpecialtyList();
|
| }
|
| public DiseaseType searchDiseaseType(int diseaseCode) throws ObjectNotFoundException {
|
| return diseaseRecord.search(diseaseCode);
|
| }
|
| public IteratorHW getDiseaseTypeList() throws ObjectNotFoundException {
|
| return diseaseRecord.getDiseaseTypeList();
|
| }
|
| }
|
|
|
EmployeeRecord.java
|
|
| package employee;
|
|
|
| import exceptions.ExceptionMessages;
|
| import exceptions.ObjectAlreadyInsertedException;
|
| import exceptions.ObjectNotFoundException;
|
| import exceptions.ObjectNotValidException;
|
| public class EmployeeRecord implements util.RecordTag{
|
|
|
| private IEmployeeRepository employeeRepository;
|
|
|
| public EmployeeRecord(IEmployeeRepository rep) {
|
| this.employeeRepository = rep;
|
| }
|
|
|
| public Employee search(String login) throws ObjectNotFoundException {
|
| return employeeRepository.search(login);
|
| }
|
|
|
| public void insert(Employee employee) throws ObjectAlreadyInsertedException, ObjectNotValidException {
|
| if (employeeRepository.exists(employee.getLogin())) {
|
| throw new ObjectAlreadyInsertedException(ExceptionMessages.EXC_JA_EXISTE);
|
| } else {
|
| employeeRepository.insert(employee);
|
| }
|
| }
|
|
|
| public void update(Employee employee) throws ObjectNotFoundException, ObjectNotValidException {
|
| employeeRepository.update(employee);
|
| }
|
| }
|
message when new EmployeeRecord(null) is called inside servlet:
| 23:12:45,341 INFO [STDOUT] aroundRecordsCreation:class gui.servlets.ServletInit_1_ConByMInvocation
| 23:12:45,369 INFO [STDOUT] aroundRecordsCreation:class gui.servlets.ServletInit_3_ConByMInvocation
|
When the method HealthWatcherFacade.getInstance() is called the attribute modified in the constructor of EmployeeRecord is intercepted(I used keyword ?all? to discover this interception):
private IEmployeeRepository employeeRepository;
public EmployeeRecord(IEmployeeRepository rep) {
this.employeeRepository = rep;
}
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992143#3992143
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992143
19 years, 7 months
[Messaging, JMS & JBossMQ] - Memory leak caused by Connection$PingTask
by johnamos
JBoss [Zion] 4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)
ClockDaemon is used by org.jboss.mg.Connection to periodically run Connection$PingTask. ClockDaemon holds a Heap that contains references to PingTask instances. Normally, the PingTask instances are removed from the ClockDaemon's Heap by ClockDaemon$RunLoop, which contains an infinite loop that runs each PingTask.
Ocassionally, after running my web application for 20-30 hours, I start to see a memory leak that is caused by references to objects in the ClockDaemon's Heap.
My application has a scheduler that issues a JMS event every 30 seconds, and each one instantiates a new Connection. The constructor for Connection calls startPingThread(), which runs
| clockDaemon.executePeriodically(pingPeriod, new PingTask(), true);
This method call inserts a new ClockDaemon$TaskNode on the ClockDaemon's Heap.
When I put my debugger on the leaking application, I see that ClockDaemon$RunLoop is hung on the following line:
task.command.run();
The task is a TaskNode instance with a command that is a PingTask instance. As a result, the loop is stopped, so none of the objects can be removed from the ClockDaemon's Heap.
Drilling down into the PingTask.run() method, I see that it is hung at the following line:
pingTaskSemaphore.acquire();
My debugger shows that pingTaskSemaphore has zero permits, so the acquire() method will block until another thread calls pingTaskSemaphore.release(). But apparently release() is never called.
It seems to me that this should never be allowed to happen, because a low priority ping task is effectively hijacking the ClockDaemon's loop that dereferences objects. Once the application reaches this state, the JVM ultimately fails with an OutOfMemory error.
I don't immediately see why pingTaskSemaphore.release() is never called, except that pingTaskSemaphore.acquire() is not in the same try-finally block. The PingTask.run() method is below:
| /**
| * The ping task
| */
| class PingTask implements Runnable
| {
| /**
| * Main processing method for the PingTask object
| */
| public void run()
| {
| try
| {
| pingTaskSemaphore.acquire();
| }
| catch (InterruptedException e)
| {
| log.debug("Interrupted requesting ping semaphore");
| return;
| }
| try
| {
| if (ponged == false)
| {
| // Server did not pong use with in the timeout
| // period.. Assuming the connection is dead.
| throw new SpyJMSException("No pong received", new IOException("ping timeout."));
| }
|
| ponged = false;
| pingServer(System.currentTimeMillis());
| }
| catch (Throwable t)
| {
| asynchFailure("Unexpected ping failure", t);
| }
| finally
| {
| pingTaskSemaphore.release();
| }
| }
| }
|
Notice that pingTaskSemaphore.release() is in a finally block, but it isn't the same try block as the pingTaskSemaphore.acquire() method call, which means that it is possible for pingTaskSemaphore.acquire() to decrement the Semaphore's permits and then throw an exception that is not InterruptedException. In that case, the finally block would never be executed because the Exception would be thrown from the first try block. However, this last paragraph is speculation. I don't really know what is happening. I also don't know why it takes 20-30 hours of operation for this problem to appear. I don't have a reproducible test case because I can't consistently reproduce this problem.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992141#3992141
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992141
19 years, 7 months
[JBoss AOP] - Re: problem in granularity of interception
by fabiocsilva
"fabiocsilva" wrote : I am needing to intercept the call of a constructor in my application.
| When the instantiation occurs within of a method called for the system executes correctly. However, the instantiation occurs, in fact, inside of a constructor of another object. This another object is singleton. In this case the pointcut is not running. What it can be?
|
| |
| | Running:
| |
| | public class ServletInit extends HttpServlet {
| |
| | public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
| | EmployeeRecord er = new EmployeeRecord(null);
| | ...
| | }
| | }
| |
| |
|
|
|
| | ERROR:
| |
| |
| | public class ServletInit extends HttpServlet {
| |
| | public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
| | HealthWatcherFacade.getInstance();
| | ...
| | }
| | }
| |
| |
| |
| | public class HealthWatcherFacade {
| | private static HealthWatcherFacade singleton; //padrao singleton
| | private ComplaintRecord complaintRecord;
| | private HealthUnitRecord healthUnitRecord;
| | private MedicalSpecialtyRecord specialtyRecord;
| | private DiseaseRecord diseaseRecord;
| | private EmployeeRecord employeeRecord;
| |
| | private HealthWatcherFacade() {
| | complaintRecord = new ComplaintRecord(null);
| | healthUnitRecord = new HealthUnitRecord(null);
| | specialtyRecord = new MedicalSpecialtyRecord(null);
| | diseaseRecord = new DiseaseRecord(null);
| | employeeRecord = new EmployeeRecord(null);
| | }
| | public synchronized static HealthWatcherFacade getInstance() {
| | if (singleton == null) {
| | singleton = new HealthWatcherFacade();
| | }
| |
| | return singleton;
| | }
| | ...
| | }
| |
| |
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992134#3992134
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992134
19 years, 7 months
[JBoss AOP] - probleam in granularity of interception
by fabiocsilva
I am needing to intercept the call of a constructor in my application.
When the instantiation occurs within of a method called for the system executes correctly. However, the instantiation occurs, in fact, inside of a constructor of another object. This another object is singleton. In this case the pointcut is not running. What it can be?
|
| Running:
|
| public class ServletInit extends HttpServlet {
|
| public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
| EmployeeRecord er = new EmployeeRecord(null);
| ...
| }
| }
|
|
| ERROR:
|
|
| public class ServletInit extends HttpServlet {
|
| public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
| HealthWatcherFacade.getInstance();
| ...
| }
| }
|
|
|
| public class HealthWatcherFacade {
| private static HealthWatcherFacade singleton; //padrao singleton
| private ComplaintRecord complaintRecord;
| private HealthUnitRecord healthUnitRecord;
| private MedicalSpecialtyRecord specialtyRecord;
| private DiseaseRecord diseaseRecord;
| private EmployeeRecord employeeRecord;
|
| private HealthWatcherFacade() {
| complaintRecord = new ComplaintRecord(null);
| healthUnitRecord = new HealthUnitRecord(null);
| specialtyRecord = new MedicalSpecialtyRecord(null);
| diseaseRecord = new DiseaseRecord(null);
| employeeRecord = new EmployeeRecord(null);
| }
| public synchronized static HealthWatcherFacade getInstance() {
| if (singleton == null) {
| singleton = new HealthWatcherFacade();
| }
|
| return singleton;
| }
| ...
| }
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992132#3992132
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992132
19 years, 7 months
[JBoss Seam] - Re: Seam 1.1 CR1, IceFaces & Tomahawk...
by gavin.king@jboss.com
anonymous wrote : I tried to use Tomahawk with Seam with Tomahawk 1.1.0 (?) and it did work, but conversations didn't work
ie. it didn't work
anonymous wrote : because Tomahawk's components didn't maintain the conversation ID
Don't use Tomahawk. How many times do I have to say it? This stuff is just broken.
anonymous wrote : I didn't really need conversations in the app I was working on so I just made everything Session scoped.
In another thread you are complaining that Seam is broken because you get LIEs. Has it occurred to you that you are getting LIEs because you decided to use session scope for everything instead of conversations?
anonymous wrote : With this new version of Tomahawk and Seam, will conversations work?
I am absolutely not going to waste time trying to get that broken crap to work. There are much better JSF component libraries out there, which are *not* so broken and fragile.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992128#3992128
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992128
19 years, 7 months
[JBoss Seam] - Re:
by Andreh
I'll try to explaim better !
MyEntity:
|
| @Entity
| @Scope(SESSION)
| @Name(users)
| public class UserEntity implements Serializable {
|
| //variable and setters and getters
|
| }
|
|
My Action Register:
|
| @Stateless
| @Scope(EVENT)
| @Name("register")
| public class RegisterAction implements Register {
|
| @In
| UserEntity userentity;
|
| @PersistenceContext
| EntityManager em;
|
| public String register(){
|
| //some if's and here
| em.persist(userentity);
|
| return "/anotherpage.seam";
| }
| }
|
and in my jsf page
| <h:commandButton value="Register" action="#{register.register}" />
|
So, I persist one Object, and It is Ok, but if I turn back and go to persist another one, I get that Exception above... I know that's because my UserEntity hava SESSION scope...
Do I have to change the UserEntity Scope to Event? and modify somethings to make it work properly?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992116#3992116
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992116
19 years, 7 months
[JBoss Seam] - Re: Problem injecting drools WorkingMemory
by sjmenden
I made some progress but now getting massive exceptions. I changed the components.xml to look like the drools example one:
components.xml
| ...
| <component name="ruleBase" class="org.jboss.seam.drools.RuleBase">
| <property name="ruleFiles">purchasingRules.drl</property>
| </component>
|
| <component name="purchasingRulesMemory" class="org.jboss.seam.drools.ManagedWorkingMemory">
| <property name="ruleBase">#{ruleBase}</property>
| </component>
| ...
|
But now I'm getting a ClassCastException, and I have verified my jars exactly(crosses fingers) mirror the ones in the example. I'm running SEAM CR2 with JBoss 4.0.5
| 17:16:25,918 ERROR [STDERR] StringTemplate: problem parsing group <unknown>: java.lang.ClassCastException: antlr.CommonToken cannot be cast to antlr.Token
| 17:16:25,919 ERROR [STDERR] java.lang.ClassCastException: antlr.CommonToken cannot be cast to antlr.Token
| 17:16:25,919 ERROR [STDERR] at antlr.CharScanner.makeToken(CharScanner.java:173)
| 17:16:25,920 ERROR [STDERR] at org.antlr.stringtemplate.language.GroupLexer.mID(GroupLexer.java:333)
| 17:16:25,920 ERROR [STDERR] at org.antlr.stringtemplate.language.GroupLexer.nextToken(GroupLexer.java:103)
| 17:16:25,920 ERROR [STDERR] at antlr.TokenBuffer.fill(TokenBuffer.java:69)
| 17:16:25,920 ERROR [STDERR] at antlr.TokenBuffer.LA(TokenBuffer.java:80)
| 17:16:25,920 ERROR [STDERR] at antlr.LLkParser.LA(LLkParser.java:52)
| 17:16:25,920 ERROR [STDERR] at antlr.Parser.match(Parser.java:210)
| 17:16:25,921 ERROR [STDERR] at org.antlr.stringtemplate.language.GroupParser.group(GroupParser.java:117)
| 17:16:25,921 ERROR [STDERR] at org.antlr.stringtemplate.StringTemplateGroup.parseGroup(StringTemplateGroup.java:754)
| 17:16:25,921 ERROR [STDERR] at org.antlr.stringtemplate.StringTemplateGroup.<init>(StringTemplateGroup.java:264)
| 17:16:25,921 ERROR [STDERR] at org.antlr.stringtemplate.StringTemplateGroup.<init>(StringTemplateGroup.java:244)
| 17:16:25,921 ERROR [STDERR] at org.drools.semantics.java.RuleBuilder.<clinit>(Unknown Source)
| 17:16:25,921 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addRule(Unknown Source)
| 17:16:25,922 ERROR [STDERR] at org.drools.compiler.PackageBuilder.addPackage(Unknown Source)
| 17:16:25,922 ERROR [STDERR] at org.jboss.seam.drools.RuleBase.compileRuleBase(RuleBase.java:52)
| 17:16:25,922 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| 17:16:25,922 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| 17:16:25,922 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| 17:16:25,922 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:597)
| 17:16:25,923 ERROR [STDERR] at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
| ...
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992101#3992101
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992101
19 years, 7 months
[JBoss Seam] - Errors when using Seam components with Trinidad
by lowecg2004
If I use <s:link> with the Trinidad components installed, I get this message for each instance of <s:link>:
22:02:57,484 ERROR [STDERR] 07-Dec-2006 22:02:57 org.apache.myfaces.trinidadinternal.renderkit.RenderKitBase getRenderer
| WARNING: Renderer 'javax.faces.Link' not found for component family 'javax.faces.Output'
| 22:02:57,484 INFO [[/ripuk]] No Renderer found for component {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /view/public/order-format.xhtml][Class: org.apache.myfaces.trinidad.component.html.HtmlBody,Id: _id9][Class: org.jboss.seam.ui.HtmlLink,Id: lnkTermsAndConditions]} (component-family=javax.faces.Output, renderer-type=javax.faces.Link)
| 22:02:57,484 WARN [UIComponentBase] No Renderer found for component {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /view/public/order-format.xhtml][Class: org.apache.myfaces.trinidad.component.html.HtmlBody,Id: _id9][Class: org.jboss.seam.ui.HtmlLink,Id: lnkTermsAndConditions]} (component-family=javax.faces.Output, renderer-type=javax.faces.Link)
I have configured Trinidad in web.xml as:
<context-param>
| <param-name>org.apache.myfaces.trinidad.ALTERNATE_VIEW_HANDLER</param-name>
| <param-value>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</param-value>
| </context-param>
Any ideas on what might be the problem?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992098#3992098
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992098
19 years, 7 months
[JBoss Seam] - Re: How many EntityManagers and SFSBs in a web app?
by petemuir
You really seem to have missed the point.
If you use a Seam Managed Persistence Context (RTM) then it solves the LIE situation for conversations (which can be used 99% of the time you used to use the session scope).
I suspect the problem is that you are using session scoping when you needn't. I think it is fair to say that you should, in most normal apps, only need to store one entity in the session scope - the logged in user - and I've never had to place any in the application context.
anonymous wrote : The problem is, how do I avoid LazyInitializationExceptions when my objects have collections in them? Obvious answer: use eager fetching. But for situations where that is not practical, the thing to do is to have an EntityManager available while the page is being rendered.
No. The obvious answer is to use a conversation and a conversation scope entity manager (which Seam does for you) (and certainly provides the same entity manager whilst the page is rendered.
anonymous wrote : I can access the FacesMessages from any object and the FacesMessages is retrieved from the Thread itself.
Thats because FacesMessages is conversation scoped. An EXTENDED persistence context isn't, an SMPC is.
petemuir wrote : For SESSION and APPLICATION scopes either eager fetch what you need or create a manager that reloads entities when they become detached (this is somewhere in the forum archive).
I forgot I wrote this up:
http://wiki.jboss.org/wiki/Wiki.jsp?page=SeamEntityHomeForLongRunningCont...
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992094#3992094
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992094
19 years, 7 months
[JBoss Seam] - Problem injecting drools WorkingMemory
by sjmenden
I am following the documentation for injecting the WorkingMemory into an EJB. I know my problem is configuration, but there are no working examples specific to the documentation, so I'm having trouble:
| SEVERE: Error Rendering View[/purchase.xhtml]
| org.jboss.seam.RequiredException: In attribute requires value for component: purchaseHome.purchasingRulesMemory
| at org.jboss.seam.Component.getInstanceToInject(Component.java:1844)
| at org.jboss.seam.Component.injectFields(Component.java:1317)
| at org.jboss.seam.Component.inject(Component.java:1087)
| at org.jboss.seam.interceptors.BijectionInterceptor.bijectTargetComponent(BijectionInterceptor.java:48)
| ...
|
components.xml
| <components xmlns:drools="http://jboss.com/products/drools">
|
| ...
|
| <drools:rule-base name="purchasingRules">
| <drools:rule-files>
| <value>purchasingRules.drl</value>
| </drools:rule-files>
| </drools:rule-base>
|
| <drools:managed-working-memory name="purchasingRulesMemory" auto-create="true" rule-base="#{purchasingRules}"/>
|
| ...
|
| </components>
|
purchasingRules.drl, located in the resources dir, but I'm copying it over to WEB-INF/classes because the docs say that the rule is looked for on the classpath
| package test.purchasing
|
| rule "Step 1"
|
| when
| s : PurchaseStatus( status == "New Request")
| then
| System.out.println("Rule Triggered!!!!!!!!!");
| System.out.println(s);
| s.setStatus("Waiting for purchase Approval.");
| s.setNextStep("Step 1");
|
| end
|
PurchaseHome.java
| ...
|
| @Name("purchaseHome")
| @LoggedIn
| public class PurchaseHome extends EntityHome<Purchase> {
|
| @In WorkingMemory purchasingRulesMemory;
|
| ...
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992092#3992092
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992092
19 years, 7 months
[JBoss Messaging] - crashing under load
by nbreau
We are running standalone messaging on a single server under load of about 50 messages/sec.
After about 20 mins of execution our producer is crashing with the following stack trace... I would greatly appreciate if anyone could shed some light on the cause. The application is producing to a non-persistent queue.
thanks,
Nick.
stack trace:
org.jboss.aop.NotFoundInDispatcherException: Object with oid: -2147483597 was not found in the Dispatcher
at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:85)
at org.jboss.jms.server.remoting.JMSServerInvocationHandler.invoke(JMSServerInvocationHandler.java:127)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:1008)
at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:857)
at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:454)
at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:541)
at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:261)
at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:172)
at org.jboss.remoting.Client.invoke(Client.java:589)
at org.jboss.remoting.Client.invoke(Client.java:581)
at org.jboss.jms.client.delegate.DelegateSupport.invoke(DelegateSupport.java:111)
at org.jboss.jms.client.delegate.ClientSessionDelegate$send_N3028277934545793941.invokeNext(ClientSessionDelegate$send_N3028277934545793941.java)
at org.jboss.jms.client.container.TransactionAspect.handleSend(TransactionAspect.java:176)
at org.jboss.aop.advice.org.jboss.jms.client.container.TransactionAspect16.invoke(TransactionAspect16.java)
at org.jboss.jms.client.delegate.ClientSessionDelegate$send_N3028277934545793941.invokeNext(ClientSessionDelegate$send_N3028277934545793941.java)
at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:182)
at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:117)
at org.jboss.jms.client.delegate.ClientSessionDelegate$send_N3028277934545793941.invokeNext(ClientSessionDelegate$send_N3028277934545793941.java)
at org.jboss.jms.client.container.ExceptionInterceptor.invoke(ExceptionInterceptor.java:69)
at org.jboss.jms.client.delegate.ClientSessionDelegate$send_N3028277934545793941.invokeNext(ClientSessionDelegate$send_N3028277934545793941.java)
at org.jboss.jms.client.container.ClientLogInterceptor.invoke(ClientLogInterceptor.java:107)
at org.jboss.jms.client.delegate.ClientSessionDelegate$send_N3028277934545793941.invokeNext(ClientSessionDelegate$send_N3028277934545793941.java)
at org.jboss.jms.client.delegate.ClientSessionDelegate.send(ClientSessionDelegate.java)
at org.jboss.jms.client.container.ProducerAspect.handleSend(ProducerAspect.java:253)
at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.aop.advice.PerInstanceAdvice.invoke(PerInstanceAdvice.java:130)
at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:182)
at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:117)
at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
at org.jboss.jms.client.container.ExceptionInterceptor.invoke(ExceptionInterceptor.java:69)
at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
at org.jboss.jms.client.container.ClientLogInterceptor.invoke(ClientLogInterceptor.java:107)
at org.jboss.jms.client.delegate.ClientProducerDelegate$send_3961598017717988886.invokeNext(ClientProducerDelegate$send_3961598017717988886.java)
at org.jboss.jms.client.delegate.ClientProducerDelegate.send(ClientProducerDelegate.java)
at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:172)
at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:220)
at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:147)
at org.jboss.jms.client.JBossMessageProducer.send(JBossMessageProducer.java:138)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992078#3992078
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992078
19 years, 7 months
[EJB/JBoss] - Class.cast.Exception when Accessing a Session bean on 4.0.5
by ncheetham
Can anyone help me - I'm at a loss. I'm also embarrassed because I think this should be easy. I've deployed my application in an EAR, it contains a JSF web app, and some EJB's.
Here's the code I use to call the bean.
| InitialContext context = new InitialContext();
|
| Object objref = context.lookup("ReservationManager");
|
| ReservationManagerHome reservationManagerHome =
| (ReservationManagerHome)PortableRemoteObject.narrow(objref, ReservationManagerHome.class);
|
| _reservationManager =
| (ReservationManager)reservationManagerHome.create();
|
The context.lookup successfully returns a proxy, but the narrow function throws a Class Cast Error shown below:
2006-12-07 14:56:13,610 ERROR [businesstier.base.ReservationsClassFactory] java.lang.ClassCastException
|
The deployment reports no errors -> here's the log:
| DEBUG [org.jboss.ejb.EJBDeployer.verifier] Bean checked: ReservationManager: Verified.
| ...
| INFO [org.jboss.ejb.EjbModule] Deploying ReservationManager
| ...
| DEBUG [org.jboss.ejb.EjbModule] creating binding for ReservationManager:stateless-rmi-invoker
| ...
| DEBUG [org.jboss.system.ServiceController] Creating service jboss.j2ee:jndiName=ReservationManager,service=EJB
| ...
| DEBUG [org.jboss.ejb.StatelessSessionContainer] Creating jboss.j2ee:jndiName=ReservationManager,service=EJB
| ...
| DEBUG [org.jboss.system.ServiceController] Creating service jboss.j2ee:service=EJB,plugin=pool,jndiName=ReservationManager
| DEBUG [org.jboss.ejb.plugins.StatelessSessionInstancePool] Creating jboss.j2ee:service=EJB,plugin=pool,jndiName=ReservationManager
| ...
| DEBUG [org.jboss.ejb.plugins.StatelessSessionInstancePool] Created jboss.j2ee:service=EJB,plugin=pool,jndiName=ReservationManager
| ...
| jboss.j2ee:jndiName=ReservationManager,service=EJB state: Created
| ...
| INFO [org.jboss.ejb.plugins.local.BaseLocalProxyFactory] Bound EJB LocalHome 'ReservationManager' to jndi 'local/ReservationManager@15468898'
|
I can see it as a service in the JMX-Console
The Web.XML looks like this:
| <ejb-ref>
| <ejb-ref-name>ejb/ReservationManager</ejb-ref-name>
| <ejb-ref-type>Session</ejb-ref-type>
| <home>businesstier.impl.ReservationManagerHome</home>
| <remote>businesstier.impl.ReservationManager</remote>
| <ejb-link>ReservationManager</ejb-link>
| </ejb-ref>
|
The ejb-jar.xml looks like this:
| <session>
| <description>Session Bean ( Stateless )</description>
| <display-name>ReservationManager</display-name>
| <ejb-name>ReservationManager</ejb-name>
| <home>businesstier.impl.ReservationManagerHome</home>
| <remote>businesstier.impl.ReservationManager</remote>
| <local-home>businesstier.impl.ReservationManagerLocalHome</local-home>
| <local>businesstier.impl.ReservationManagerLocal</local>
| <ejb-class>businesstier.impl.ReservationManagerBean</ejb-class>
| <session-type>Stateless</session-type>
| <transaction-type>Container</transaction-type>
| ...
|
The deployment works like a charm on Oracle Application Server 10g.
I'm completely stumped. What am I missing.
Thanks,
Nigel
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992069#3992069
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992069
19 years, 7 months
[JBoss jBPM] - Decision Node Problems
by highlnd
I'm trying to test out a simple decision node. So I have the XML as this:
[decision name="Date Less Than Two Weeks"]
[handler class="com.baerresengroup.bpm.SaleDateDecision"/]
[transition name="Yes" to="Approve Order Form"][/transition]
[transition name="No" to="Approve Purchase Order"][/transition]
[/decision]
And for my handler class I have this:
public class SaleDateDecision implements DecisionHandler {
public String decide(ExecutionContext executionContext) throws Exception {
return "No";
}
}
It just goes to the No transition for testing purposes. However, when the token gets to the decision node in the process using the test web app I get the exception below. Can anyone shed some light on this problem? Thanks!
javax.faces.FacesException: Error calling action method of component with id taskform:transitionButton
org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
javax.faces.component.UICommand.broadcast(UICommand.java:106)
javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:90)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:164)
org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:271)
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:94)
org.jbpm.webapp.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:55)
org.jbpm.web.JbpmContextFilter.doFilter(JbpmContextFilter.java:83)
org.jbpm.webapp.filter.LogFilter.doFilter(LogFilter.java:59)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992062#3992062
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992062
19 years, 7 months
[JBoss jBPM] - Application Descriptor: WS invokation with unknow name from
by bertrand.njiipwo
Hello @all,
i'm facing the following problem:
I'm trying to call a web service from a well know category (schufa, travelAgency f.e.) but at calling time the name of the web service is unknow (see. Background infos).
My problem: At the design time i don't know the name of the WS which will be invoke. Therefore i can't not specify the name of that WS but only the cathegory name in the URL "http://somemachine:8089/context/services/travelAgency".
If i specify for example in {JBPM.BPEL.EXAMPLE}/hello/web/wsdl/bpel-application.xml following:
<partnerLink name="Approving">
| <partnerRole>
| <wsa:EndpointReference xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
| <wsa:Address>USE_ACTUAL_URI_FROM_CATALOG</wsa:Address>
| <wsa:ServiceName xmlns:travelAgency="urn:samples:travelAgency">travelAgency:TravelAgencyService</wsa:ServiceName>
| </wsa:EndpointReference>
| </partnerRole>
| </partnerLink>
| </partnerLinks>
| <serviceCatalogs>
| <urlCatalog contextUrl="http://localhost:8080/">
| <!-- published WSDL document of the remote service -->
| <wsdl location="context/services/travelAgency"/>
| </urlCatalog>
| </serviceCatalogs>
|
For the concret case where a WS with name TravelAgencyA is the best one the config will look like:
<serviceCatalogs>
| <urlCatalog contextUrl="http://localhost:8080/">
| <!-- published WSDL document of the remote service -->
| <wsdl location="context/service/travelAgencyA?wsdl"/>
| </urlCatalog>
| </serviceCatalogs>
Q: If is use did i explicitly need to incorporate the SOAPMessage in the HTTP-Request in the code or it's done automaticaly before the web service call?
the HTTP-Request is routed and received by the performance module but didn't contain the parameters in the SOAPMessage before the ws call.
For Background:
The problem is that at the time clients (BPEL-process) make a WS call they know only the name of the category (schufa, travelAgency). Some perfomance module will call the best service when the request is receive.
For this purpose clients just need to specify in their HTTP-request the name of the category: ("http://localhost:8089/context/travelAgency") they request. Service provider register web services under that category an the choise of which WS to invoke is token on the fly.
So my problem is that i know only the WSDL-Description of services in that named cathegory (All WSs in that category implement the same interface).
schufa.wsdl<?xml version="1.0" encoding="UTF-8"?>
| <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:schufa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" targetNamespace="urn:samples:schufa" name="SchufaService">
| <message name="validCustomerRequest">
| <part name="_surname" type="xsd:string"/>
| <part name="_firstname" type="xsd:string"/>
| </message>
| <message name="validCustomerResponse">
| <part name="validCustomerReturn" type="xsd:string"/>
| </message>
| <portType name="SchufaWS">
| <operation name="validCustomer" parameterOrder="_surname _firstname">
| <input name="validCustomerRequest" message="tns:validCustomerRequest"/>
| <output name="validCustomerResponse" message="tns:validCustomerResponse"/>
| </operation>
| </portType>
| </definitions>
|
schufa.impl.wsdl
| <?xml version="1.0" encoding="UTF-8"?>
| <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:schufa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="urn:samples:schufa" xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/
| http://schemas.xmlsoap.org/wsdl/">
| <import namespace="urn:samples:schufa" location="schufa.wsdl"/>
| <binding name="SchufaSOAPBinding" type="tns:SchufaWS">
| <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
| <operation name="validCustomer">
| <soap:operation soapAction="urn:samples:schufa:validCustomer"/>
| <input>
| <soap:body use="literal" namespace="urn:samples:schufa"/>
| </input>
| <output>
| <soap:body use="literal" namespace="urn:samples:schufa"/>
| </output>
| </operation>
| </binding>
| <service name="SchufaService">
| <port name="schufaPort" binding="tns:SchufaSOAPBinding">
| <soap:address location="REPLACE_WITH_ACTUAL_URI"/>
| </port>
| </service>
| </definitions>
|
Process interface <?xml version="1.0" encoding="UTF-8"?>
| <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:loanapproval" xmlns:loanapproval="urn:samples:loanapproval" xmlns:schufa="urn:samples:schufa" xmlns:types="urn:samples:loanapprovalTypes" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" targetNamespace="urn:samples:loanapproval">
| <import namespace="urn:samples:schufa" location="interface/schufa.wsdl"/>
| <types>
| <schema targetNamespace="urn:samples:loanapprovalTypes" xmlns="http://www.w3.org/2001/XMLSchema">
| <element name="loanProcessFault" type="types:loanProcessFaultType"/>
| <complexType name="loanApplicationType">
| <sequence>
| <element name="firstName" type="string"/>
| <element name="lastName" type="string"/>
| <element name="amount" type="float"/>
| </sequence>
| </complexType>
| <complexType name="approvalDecisionType">
| <sequence>
| <!--element name="approved" type="boolean"/-->
| <element name="approved" type="string"/>
| </sequence>
| </complexType>
| <complexType name="loanProcessFaultType">
| <sequence>
| <element name="ErrorCode" type="int"/>
| <element name="ErrorMessage" type="string"/>
| </sequence>
| </complexType>
| </schema>
| </types>
| <message name="applyRequest">
| <part name="loanRequestParameters" type="types:loanApplicationType"/>
| </message>
| <message name="applyResponse">
| <part name="loanResponse" type="types:approvalDecisionType"/>
| </message>
| <message name="applyLoanProcessFault">
| <part name="loanFault" element="types:loanProcessFault"/>
| </message>
| <portType name="LoanProcessPortType">
| <operation name="apply">
| <input message="tns:applyRequest"/>
| <output message="tns:applyResponse"/>
| <fault name="LoanProcessFault" message="tns:applyLoanProcessFault"/>
| </operation>
| </portType>
| <!-- Describe the relation between the -->
| <plt:partnerLinkType name="LoanProcessingPLT">
| <plt:role name="lender">
| <plt:portType name="tns:LoanProcessPortType"/>
| </plt:role>
| </plt:partnerLinkType>
| <!-- Describe the relation between the -->
| <plt:partnerLinkType name="SchufaPLT">
| <plt:role name="schufa">
| <plt:portType name="schufa:SchufaWS"/>
| </plt:role>
| </plt:partnerLinkType>
| </definitions>
BPEL Process:
<process name="loanapproval" suppressJoinFailure="yes" targetNamespace="urn:samples:loanapproval" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:tns="urn:samples:loanapproval" xmlns:loanapproval="urn:samples:loanapproval" xmlns:schufa="urn:samples:schufa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/ws/2003/03/business-process/
| http://schemas.xmlsoap.org/ws/2003/03/business-process/">
| <partnerLinks>
| <partnerLink name="LoanProcessing" partnerLinkType="loanapproval:LoanProcessingPLT" myRole="lender"/>
| <partnerLink name="SchufaLink" partnerLinkType="tns:SchufaPLT" partnerRole="schufa"/>
| </partnerLinks>
| <variables>
| <variable name="applyRequest" messageType="loanapproval:applyRequest"/>
| <variable name="applyResponse" messageType="loanapproval:applyResponse"/>
| <variable name="schufaRequest" messageType="schufa:validCustomerRequest"/>
| <variable name="schufaResponse" messageType="schufa:validCustomerResponse"/>
| </variables>
| <sequence>
| <receive createInstance="yes" name="LoanApplication" operation="apply" partnerLink="LoanProcessing" portType="loanapproval:LoanProcessPortType" variable="applyRequest"/>
| <assign name="AssignLoanInfo_forApproval">
| <copy>
| <from variable="applyRequest" query="/loanRequestParameters/lastName" part="loanRequestParameters"/>
| <to variable="schufaRequest" part="_surname"/>
| </copy>
| <copy>
| <from variable="applyRequest" query="/loanRequestParameters/firstName" part="loanRequestParameters"/>
| <to variable="schufaRequest" part="_firstname"/>
| </copy>
| </assign>
| <invoke inputVariable="schufaRequest" name="SchufaCheck" operation="validCustomer" outputVariable="schufaResponse" partnerLink="SchufaLink" portType="schufa:SchufaWS"/>
| <assign name="AssignSchufaDecision">
| <copy>
| <from variable="schufaResponse" part="validCustomerReturn"/>
| <to variable="applyResponse" query="/loanResponse/approved" part="loanResponse"/>
| </copy>
| </assign>
| <reply name="ApprovalDecision" operation="apply" partnerLink="LoanProcessing" portType="loanapproval:LoanProcessPortType" variable="applyResponse"/>
| </sequence>
| </process>
|
|
I'm runnig with the configuration: JBoss AS 4.0.4.GA, jbpm.bpel1-beta1, jbpm-3.1. java 1.5.06, jwsdp-1.6, ant-1.6.5
Any suggestion howto configure my bpel-application descriptor (bpel-application.xml)? Any advice will help a lot.
Thanks in advance.
Bertrand
My
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3992058#3992058
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3992058
19 years, 7 months