[EJB 3.0] - Re: Help need to solve the jms not bound error
by houston_dragon
PeterJ:
I was following the tutorial
http://www.netbeans.org/kb/60/javaee/ejb30.html
Thanks
| /*
| * To change this template, choose Tools | Templates
| * and open the template in the editor.
| */
|
| package ejb;
|
| import javax.annotation.Resource;
| import javax.ejb.ActivationConfigProperty;
| import javax.ejb.MessageDriven;
| import javax.ejb.MessageDrivenContext;
| import javax.jms.JMSException;
| import javax.jms.Message;
| import javax.jms.MessageListener;
| import javax.jms.ObjectMessage;
| import javax.persistence.EntityManager;
| import javax.persistence.PersistenceContext;
|
| /**
| *
| * @author swu3
| */
| @MessageDriven(mappedName = "jms/NewMessage", activationConfig = {
| @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
| @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
|
| })
|
| public class NewMessageBean implements MessageListener {
|
| @Resource
| private MessageDrivenContext mdc;
|
| @PersistenceContext
| private EntityManager em;
|
| public NewMessageBean() {
| }
|
| public void onMessage(Message message) {
| ObjectMessage msg = null;
| try {
| if (message instanceof ObjectMessage) {
| msg = (ObjectMessage) message;
| NewsEntity e = (NewsEntity) msg.getObject();
| save(e);
| }
| } catch (JMSException e) {
| e.printStackTrace();
| mdc.setRollbackOnly();
| } catch (Throwable te) {
| te.printStackTrace();
| }
| }
|
| public void save(Object object) {
| em.persist(object);
| }
|
| }
|
| /*
| * To change this template, choose Tools | Templates
| * and open the template in the editor.
| */
|
| package ejb;
|
| import java.io.Serializable;
| import javax.persistence.Entity;
| import javax.persistence.GeneratedValue;
| import javax.persistence.GenerationType;
| import javax.persistence.Id;
|
| /**
| *
| * @author swu3
| */
| @Entity
| public class NewsEntity implements Serializable {
| private static final long serialVersionUID = 1L;
| @Id
| @GeneratedValue(strategy = GenerationType.AUTO)
| private Long id;
|
| private String title;
| private String body;
|
| public void setBody(String body) {
| this.body = body;
| }
|
| public void setTitle(String title) {
| this.title = title;
| }
|
| public String getBody() {
| return body;
| }
|
| public String getTitle() {
| return title;
| }
|
| public Long getId() {
| return id;
| }
|
| public void setId(Long id) {
| this.id = id;
| }
|
| @Override
| public int hashCode() {
| int hash = 0;
| hash += (id != null ? id.hashCode() : 0);
| return hash;
| }
|
| @Override
| public boolean equals(Object object) {
| // TODO: Warning - this method won't work in the case the id fields are not set
| if (!(object instanceof NewsEntity)) {
| return false;
| }
| NewsEntity other = (NewsEntity) object;
| if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
| return false;
| }
| return true;
| }
|
| @Override
| public String toString() {
| return "ejb.NewsEntity[id=" + id + "]";
| }
|
| }
|
| /*
| * To change this template, choose Tools | Templates
| * and open the template in the editor.
| */
|
| package ejb;
|
| import java.util.List;
| import javax.ejb.Stateless;
| import javax.persistence.EntityManager;
| import javax.persistence.PersistenceContext;
|
| /**
| *
| * @author swu3
| */
| @Stateless
| public class NewsEntityFacade implements NewsEntityFacadeLocal {
| @PersistenceContext
| private EntityManager em;
|
| public void create(NewsEntity newsEntity) {
| em.persist(newsEntity);
| }
|
| public void edit(NewsEntity newsEntity) {
| em.merge(newsEntity);
| }
|
| public void remove(NewsEntity newsEntity) {
| em.remove(em.merge(newsEntity));
| }
|
| public NewsEntity find(Object id) {
| return em.find(ejb.NewsEntity.class, id);
| }
|
| public List<NewsEntity> findAll() {
| return em.createQuery("select object(o) from NewsEntity as o").getResultList();
| }
|
| }
|
| /*
| * To change this template, choose Tools | Templates
| * and open the template in the editor.
| */
|
| package ejb;
|
| import java.util.List;
| import javax.ejb.Local;
|
| /**
| *
| * @author swu3
| */
| @Local
| public interface NewsEntityFacadeLocal {
|
| void create(NewsEntity newsEntity);
|
| void edit(NewsEntity newsEntity);
|
| void remove(NewsEntity newsEntity);
|
| NewsEntity find(Object id);
|
| List<NewsEntity> findAll();
|
| }
|
| /*
| * To change this template, choose Tools | Templates
| * and open the template in the editor.
| */
|
| package web;
|
| import ejb.NewsEntity;
| import ejb.NewsEntityFacadeLocal;
| import java.io.IOException;
| import java.io.PrintWriter;
| import java.util.Iterator;
| import java.util.List;
| import javax.ejb.EJB;
| import javax.servlet.ServletException;
| import javax.servlet.http.HttpServlet;
| import javax.servlet.http.HttpServletRequest;
| import javax.servlet.http.HttpServletResponse;
|
| /**
| *
| * @author swu3
| */
| public class ListNews extends HttpServlet {
| @EJB
| private NewsEntityFacadeLocal newsEntityFacade;
|
| /**
| * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
| * @param request servlet request
| * @param response servlet response
| */
| protected void processRequest(HttpServletRequest request, HttpServletResponse response)
| throws ServletException, IOException {
| response.setContentType("text/html;charset=UTF-8");
| PrintWriter out = response.getWriter();
| try {
|
| out.println("<html>");
| out.println("<head>");
| out.println("<title>Servlet ListNews</title>");
| out.println("</head>");
| out.println("<body>");
| out.println("<h1>Servlet ListNews at " + request.getContextPath () + "</h1>");
| List news = newsEntityFacade.findAll();
| for (Iterator it = news.iterator(); it.hasNext();) {
| NewsEntity elem = (NewsEntity) it.next();
| out.println(" <b>" + elem.getTitle() + " </b><br />");
| out.println(elem.getBody() + "<br /> ");
| }
| out.println("<a href='PostMessage'>Add new message</a>");
|
| out.println("</body>");
| out.println("</html>");
|
| } finally {
| out.close();
| }
| }
|
| // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
| /**
| * Handles the HTTP <code>GET</code> method.
| * @param request servlet request
| * @param response servlet response
| */
| protected void doGet(HttpServletRequest request, HttpServletResponse response)
| throws ServletException, IOException {
| processRequest(request, response);
| }
|
| /**
| * Handles the HTTP <code>POST</code> method.
| * @param request servlet request
| * @param response servlet response
| */
| protected void doPost(HttpServletRequest request, HttpServletResponse response)
| throws ServletException, IOException {
| processRequest(request, response);
| }
|
| /**
| * Returns a short description of the servlet.
| */
| public String getServletInfo() {
| return "Short description";
| }// </editor-fold>
|
| }
|
| /*
| * To change this template, choose Tools | Templates
| * and open the template in the editor.
| */
|
| package web;
|
| import ejb.NewsEntity;
| import java.io.IOException;
| import java.io.PrintWriter;
| import javax.annotation.Resource;
| import javax.jms.Connection;
| import javax.jms.ConnectionFactory;
| import javax.jms.JMSException;
| import javax.jms.MessageProducer;
| import javax.jms.ObjectMessage;
| import javax.jms.Session;
| import javax.jms.Queue;
| import javax.servlet.ServletException;
| import javax.servlet.http.HttpServlet;
| import javax.servlet.http.HttpServletRequest;
| import javax.servlet.http.HttpServletResponse;
|
| /**
| *
| * @author swu3
| */
| public class PostMessage extends HttpServlet {
|
| @Resource(mappedName="jms/NewMessageFactory")
| private ConnectionFactory connectionFactory;
|
| @Resource(mappedName="jms/NewMessage")
| private Queue queue;
|
| /**
| * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
| * @param request servlet request
| * @param response servlet response
| */
| protected void processRequest(HttpServletRequest request, HttpServletResponse response)
| throws ServletException, IOException {
| response.setContentType("text/html;charset=UTF-8");
|
| // Add the following code to send the JMS message
| String title = request.getParameter("title");
| String body = request.getParameter("body");
| if ((title != null) && (body != null)) {
| try {
| Connection connection = connectionFactory.createConnection();
| Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
| MessageProducer messageProducer = session.createProducer(queue);
|
| ObjectMessage message = session.createObjectMessage();
| // here we create NewsEntity, that will be sent in JMS message
| NewsEntity e = new NewsEntity();
| e.setTitle(title);
| e.setBody(body);
|
| message.setObject(e);
| messageProducer.send(message);
| messageProducer.close();
| connection.close();
| response.sendRedirect("ListNews");
|
| } catch (JMSException ex) {
| ex.printStackTrace();
| }
| }
|
|
|
|
| PrintWriter out = response.getWriter();
| try {
|
| out.println("<html>");
| out.println("<head>");
| out.println("<title>Servlet PostMessage</title>");
| out.println("</head>");
| out.println("<body>");
| out.println("<h1>Servlet PostMessage at " + request.getContextPath () + "</h1>");
|
| // The following code adds the form to the web page
| out.println("<form>");
| out.println("Title: <input type='text' name='title'><br/>");
| out.println("Message: <textarea name='body'></textarea><br/>");
| out.println("<input type='submit'><br/>");
| out.println("</form>");
|
|
| out.println("</body>");
| out.println("</html>");
|
| } finally {
| out.close();
| }
| }
|
| // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
| /**
| * Handles the HTTP <code>GET</code> method.
| * @param request servlet request
| * @param response servlet response
| */
| protected void doGet(HttpServletRequest request, HttpServletResponse response)
| throws ServletException, IOException {
| processRequest(request, response);
| }
|
| /**
| * Handles the HTTP <code>POST</code> method.
| * @param request servlet request
| * @param response servlet response
| */
| protected void doPost(HttpServletRequest request, HttpServletResponse response)
| throws ServletException, IOException {
| processRequest(request, response);
| }
|
| /**
| * Returns a short description of the servlet.
| */
| public String getServletInfo() {
| return "Short description";
| }// </editor-fold>
|
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4187759#4187759
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4187759
17 years, 5 months
[JBoss jBPM] - Problem deploy new process
by Christy
Hi,
I would like to deploy new process, which invoking web-service.
Using Eclipse pluging I created following files:
bpel-file:
anonymous wrote : <?xml version="1.0" encoding="UTF-8"?>
| <bpws:process exitOnStandardFault="yes" name="proc"
| suppressJoinFailure="yes" targetNamespace="new"
| xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
| xmlns:ns="newArtifacts" xmlns:ns0="http://dictionary.ws.esimo/" xmlns:tns="new">
| <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
| location="proc.wsdl" namespace="new"/>
| <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
| location="http://127.0.0.1:8080/dictionaryws?wsdl" namespace="http://dictionary.ws.esimo/"/>
| <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" namespace="newArtifacts"/>
| <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
| location="procArtifacts.wsdl" namespace="newArtifacts"/>
| <bpws:partnerLinks>
| <bpws:partnerLink myRole="procProvider" name="client" partnerLinkType="tns:proc"/>
| <bpws:partnerLink name="dictionaryLink"
| partnerLinkType="ns:dicttype" partnerRole="dictrole"/>
| </bpws:partnerLinks>
| <bpws:variables>
| <bpws:variable messageType="tns:procRequestMessage" name="input"/>
| <bpws:variable messageType="tns:procResponseMessage" name="output"/>
| <bpws:variable
| messageType="ns0:DictionaryWSJaxWS_countIdsByTypeResponse" name="dictionaryLinkResponse"/>
| <bpws:variable
| messageType="ns0:DictionaryWSJaxWS_countIdsByType" name="dictionaryLinkRequest"/>
| </bpws:variables>
| <bpws:sequence name="main">
| <bpws:receive createInstance="yes" name="receiveInput"
| operation="process" partnerLink="client" portType="tns:proc" variable="input"/>
| <bpws:invoke inputVariable="dictionaryLinkRequest" name="Invoke"
| operation="countIdsByType"
| outputVariable="dictionaryLinkResponse"
| partnerLink="dictionaryLink" portType="ns0:DictionaryWSJaxWS"/>
| <bpws:reply name="replyOutput" operation="process"
| partnerLink="client" portType="tns:proc" variable="output"/>
| </bpws:sequence>
| </bpws:process>
|
wsdl-file:
anonymous wrote : <?xml version="1.0"?>
| <definitions name="proc"
| targetNamespace="new" xmlns:tns="new" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| TYPE DEFINITION - List of types participating in this BPEL process
| The BPEL Designer will generate default request and response types
| but you can define or import any XML Schema type and use them as part
| of the message types.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| MESSAGE TYPE DEFINITION - Definition of the message types used as
| part of the port type defintions
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
|
|
|
|
|
|
|
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| PORT TYPE DEFINITION - A port type groups a set of operations into
| a logical service unit.
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
|
| <!-- portType implemented by the proc BPEL process -->
|
|
|
|
|
|
|
|
| <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| PARTNER LINK TYPE DEFINITION
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
| <plnk:partnerLinkType name="proc">
| <plnk:role name="procProvider" portType="tns:proc"/>
| </plnk:partnerLinkType>
|
|
|
wsdl artifacts:
anonymous wrote : <?xml version="1.0" encoding="UTF-8" standalone="no"?>
| <definitions xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns:tns="newArtifacts" xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop" xmlns:wsdl="http://dictionary.ws.esimo/" name="procArtifacts" targetNamespace="newArtifacts" xmlns="http://schemas.xmlsoap.org/wsdl/">
| <plnk:partnerLinkType name="dicttype">
| <plnk:role name="dictrole" portType="wsdl:DictionaryWSJaxWS"/>
| </plnk:partnerLinkType>
|
|
Then I built these three files into .zip and tryed to deploy using http://localhost:8080/jbpm-bpel/processes.jsp .
But I have the error:
anonymous wrote : ERROR [org.jbpm.bpel.xml.ProblemHandler] document is not readable ()
| java.io.FileNotFoundException: C:\jboss-4.2.2.GA\bin (ÐÑказано в доÑÑÑпе)
| at java.io.FileInputStream.open(Native Method)
| at java.io.FileInputStream.(FileInputStream.java:106)
| at org.jboss.net.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:105)
| at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
| at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
| at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
| at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
| at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
| at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
| at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
| at org.jbpm.bpel.xml.ProcessWsdlLocator.upgradeWsdlDocumentIfNeeded(ProcessWsdlLocator.java:153)
| at org.jbpm.bpel.xml.ProcessWsdlLocator.getBaseInputSource(ProcessWsdlLocator.java:109)
| at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2316)
| at org.jbpm.bpel.xml.BpelReader.readImportWsdlDefinition(BpelReader.java:519)
| at org.jbpm.bpel.xml.BpelReader.readImports(BpelReader.java:447)
| at org.jbpm.bpel.xml.BpelReader.read(BpelReader.java:296)
| at org.jbpm.bpel.xml.BpelReader.read(BpelReader.java:204)
| at org.jbpm.bpel.par.BpelArchiveParser.readFromArchive(BpelArchiveParser.java:49)
| at org.jbpm.bpel.par.GenericArchiveParser.callProcessArchiveParsers(GenericArchiveParser.java:134)
| at org.jbpm.bpel.par.GenericArchiveParser.readFromArchive(GenericArchiveParser.java:54)
| at org.jbpm.jpdl.par.ProcessArchive.parseProcessDefinition(ProcessArchive.java:81)
| at org.jbpm.bpel.web.DeploymentServlet.readProcessDefinition(DeploymentServlet.java:169)
| at org.jbpm.bpel.web.DeploymentServlet.doPost(DeploymentServlet.java:95)
| 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.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
| 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:446)
| at java.lang.Thread.run(Thread.java:595)
| 2008-11-07 18:31:55,284 ERROR [org.jbpm.bpel.xml.ProblemHandler] could not read wsdl document (proc.bpel)
| javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing ''.: java.io.FileNotFoundException: C:\jboss-4.2.2.GA\bin (ÐÑказано в доÑÑÑпе)
| at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2111)
| at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2303)
| at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2335)
| at org.jbpm.bpel.xml.BpelReader.readImportWsdlDefinition(BpelReader.java:519)
| at org.jbpm.bpel.xml.BpelReader.readImports(BpelReader.java:447)
| at org.jbpm.bpel.xml.BpelReader.read(BpelReader.java:296)
| at org.jbpm.bpel.xml.BpelReader.read(BpelReader.java:204)
| at org.jbpm.bpel.par.BpelArchiveParser.readFromArchive(BpelArchiveParser.java:49)
| at org.jbpm.bpel.par.GenericArchiveParser.callProcessArchiveParsers(GenericArchiveParser.java:134)
| at org.jbpm.bpel.par.GenericArchiveParser.readFromArchive(GenericArchiveParser.java:54)
| at org.jbpm.jpdl.par.ProcessArchive.parseProcessDefinition(ProcessArchive.java:81)
| at org.jbpm.bpel.web.DeploymentServlet.readProcessDefinition(DeploymentServlet.java:169)
| at org.jbpm.bpel.web.DeploymentServlet.doPost(DeploymentServlet.java:95)
| 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.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
| 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:446)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: java.io.FileNotFoundException: C:\jboss-4.2.2.GA\bin (ÐÑказано в доÑÑÑпе)
| at java.io.FileInputStream.open(Native Method)
| at java.io.FileInputStream.(FileInputStream.java:106)
| at org.jboss.net.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:105)
| at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
| at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
| at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
| at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
| at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
| at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
| at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
| at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2101)
| ... 32 more
| 2008-11-07 18:31:55,300 ERROR [STDERR] [Fatal Error] :-1:-1: Premature end of file.
| 2008-11-07 18:31:55,300 ERROR [org.jbpm.bpel.xml.ProblemHandler] could not read wsdl document (proc.bpel)
| javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'procArtifacts.wsdl'.: org.xml.sax.SAXParseException: Premature end of file.
| at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2111)
| at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2303)
| at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2335)
| at org.jbpm.bpel.xml.BpelReader.readImportWsdlDefinition(BpelReader.java:519)
| at org.jbpm.bpel.xml.BpelReader.readImports(BpelReader.java:447)
| at org.jbpm.bpel.xml.BpelReader.read(BpelReader.java:296)
| at org.jbpm.bpel.xml.BpelReader.read(BpelReader.java:204)
| at org.jbpm.bpel.par.BpelArchiveParser.readFromArchive(BpelArchiveParser.java:49)
| at org.jbpm.bpel.par.GenericArchiveParser.callProcessArchiveParsers(GenericArchiveParser.java:134)
| at org.jbpm.bpel.par.GenericArchiveParser.readFromArchive(GenericArchiveParser.java:54)
| at org.jbpm.jpdl.par.ProcessArchive.parseProcessDefinition(ProcessArchive.java:81)
| at org.jbpm.bpel.web.DeploymentServlet.readProcessDefinition(DeploymentServlet.java:169)
| at org.jbpm.bpel.web.DeploymentServlet.doPost(DeploymentServlet.java:95)
| 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.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
| 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:446)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: org.xml.sax.SAXParseException: Premature end of file.
| at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
| at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
| at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2101)
| ... 32 more
| 2008-11-07 18:31:55,300 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/jbpm-bpel].[deploymentServlet]] Servlet.service() for servlet deploymentServlet threw exception
| org.jbpm.bpel.xml.BpelParseException: 3 problem(s) found
| at org.jbpm.bpel.par.GenericArchiveParser.readFromArchive(GenericArchiveParser.java:59)
| at org.jbpm.jpdl.par.ProcessArchive.parseProcessDefinition(ProcessArchive.java:81)
| at org.jbpm.bpel.web.DeploymentServlet.readProcessDefinition(DeploymentServlet.java:169)
| at org.jbpm.bpel.web.DeploymentServlet.doPost(DeploymentServlet.java:95)
| 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.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
| at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
| 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:446)
| at java.lang.Thread.run(Thread.java:595)
| 2008-11-07 18:32:19,941 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] Periodic
Before i tryed to build a process which simply return: "Hello, ". It did not invoke any web-services. This process deployed without any problems.
Where is my mistake?
Thank you!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4187754#4187754
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4187754
17 years, 5 months
[Beginners Corner] - Re: Howto install custom classloader
by Deady
For simplicity let's load class from file.
here's a trick:
1. create classloader
| package test.jboss;
|
| import org.jboss.logging.Logger;
| import org.jboss.mx.loading.RepositoryClassLoader;
|
| import javax.management.MalformedObjectNameException;
| import javax.management.ObjectName;
| import java.net.URL;
| import java.io.FileInputStream;
| import java.io.IOException;
|
| /**
| * User: Deady
| * Date: 06.11.2008
| * Time: 16:58:53
| */
|
| public class DBClassLoader extends RepositoryClassLoader {
|
|
| protected Logger log;
| private String name;
|
|
| /**
| * Create a new LoaderRepositoryClassLoader
| *
| * @param parent the parent classloader
| */
| public DBClassLoader(String name, URL[] url, ClassLoader parent) {
| super(url, parent);
| this.name = name;
| this.log = org.jboss.logging.Logger.getLogger(getClass().getName());
| }
|
| public ObjectName getObjectName() throws MalformedObjectNameException {
| return new ObjectName("dbclassloader");
| }
|
| public Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
| log.info("loading class: "+name);
| return super.loadClass(name, resolve);
| }
|
| public URL getResourceLocally(String name) {
| log.info("getting resource locally: "+name);
| return getURL();
| }
|
| public Class loadClassLocally(String name, boolean resolve) throws ClassNotFoundException {
| log.info("loading class locally: "+name);
| String file = "/home/Deady/testbean/classes/"+name.replace(".","/")+".class";
| byte[] b = null;
| int readen = 0;
| try {
| FileInputStream in = new FileInputStream(file);
| b = new byte[in.available()];
| readen = in.read(b);
| in.close();
| } catch (IOException e) {
| e.printStackTrace();
| }
| return defineClass(name, b, 0, readen);
| }
|
| public Package[] getPackages() {
| log.info("return packages: "+getPackage(name));
| return new Package[]{getPackage(name)};
| }
| }
|
2. create deployer MBean:
| package test.jboss;
|
| import org.jboss.deployment.DeploymentException;
| import org.jboss.deployment.DeploymentInfo;
| import org.jboss.deployment.SubDeployerSupport;
| import org.jboss.logging.Logger;
|
| import java.net.URL;
|
| /**
| * User: Deady
| * Date: 06.11.2008
| * Time: 13:42:03
| */
| public class DBDeployerMBean extends SubDeployerSupport {
|
| protected Logger log;
|
| public DBDeployerMBean() {
| this.log = org.jboss.logging.Logger.getLogger(getClass().getName());
| }
|
| public boolean accepts(DeploymentInfo di) {
| String urlStr = di.url.toString();
| String extension = getExtension();
| boolean res = urlStr.endsWith(extension);
| if (res) {
| log.info("accepted: "+di);
| }
| return res;
| }
|
|
| public void init(DeploymentInfo di) throws DeploymentException {
| log.info("initializing: "+di);
| try {
| di.createClassLoaders();
| di.ucl.getLoaderRepository().addClassLoader(new DBClassLoader("foo", new URL[]{di.localUrl}, di.ucl));
| } catch (Exception e) {
| e.printStackTrace();
| }
| super.init(di);
| }
|
| protected void deployUrl(DeploymentInfo di, URL url, String name) throws DeploymentException {
| log.info("di: "+di+", url:"+url+", name: "+name);
| super.deployUrl(di, url, name);
| }
|
| public String getExtension() {
| return ".dbr";
| }
|
| }
|
3. create sar descriptor:
| <?xml version="1.0" encoding="UTF-8"?>
| <!--
| The JBoss service configuration file for the EJB deployer service.
|
| $Id: ejb-deployer.xml 62317 2007-04-13 10:39:22Z dimitris(a)jboss.org $
| -->
| <server>
|
|
| <!-- ==================================================================== -->
| <!-- DB Deployer -->
| <!-- ==================================================================== -->
|
| <!-- EJB deployer, remove to disable EJB behavior-->
| <mbean code="test.jboss.DBDeployerMBean" name="jboss.ejb:service=DBDeployer" xmbean-dd="">
|
| <!-- Inline XMBean Descriptor BEGIN -->
| <xmbean>
| <description>The DBDeployer responsible for dbr jar deployment</description>
| <class>test.jboss.DBDeployerMBean</class>
|
| <!-- ServiceMBean operations -->
| <operation>
| <description>Standard MBean lifecycle method</description>
| <name>create</name>
| </operation>
|
| <operation>
| <description>The start lifecycle operation</description>
| <name>start</name>
| </operation>
|
| <operation>
| <description>The stop lifecycle operation</description>
| <name>stop</name>
| </operation>
|
| <operation>
| <description>The destroy lifecycle operation</description>
| <name>destroy</name>
| </operation>
|
| <operation>
| <description>The detyped lifecycle operation (for internal use only)</description>
| <name>jbossInternalLifecycle</name>
| <parameter>
| <description>The lifecycle operation</description>
| <name>method</name>
| <type>java.lang.String</type>
| </parameter>
| <return-type>void</return-type>
| </operation>
|
|
| <!-- SubDeployerMBean operations -->
| <operation>
| <description>Accept a module for deployment</description>
| <name>accepts</name>
| <parameter>
| <name>info</name>
| <type>org.jboss.deployment.DeploymentInfo</type>
| </parameter>
| <return-type>boolean</return-type>
| </operation>
|
| <operation>
| <description>Initialize deployment step</description>
| <name>init</name>
| <parameter>
| <name>info</name>
| <type>org.jboss.deployment.DeploymentInfo</type>
| </parameter>
| </operation>
|
| <operation>
| <description>Create deployment step</description>
| <name>create</name>
| <parameter>
| <name>info</name>
| <type>org.jboss.deployment.DeploymentInfo</type>
| </parameter>
| </operation>
|
| <operation>
| <description>Start deployment step</description>
| <name>start</name>
| <parameter>
| <name>info</name>
| <type>org.jboss.deployment.DeploymentInfo</type>
| </parameter>
| </operation>
|
|
| <operation>
| <description>Stop deployment step</description>
| <name>stop</name>
| <parameter>
| <name>info</name>
| <type>org.jboss.deployment.DeploymentInfo</type>
| </parameter>
| </operation>
|
| <operation>
| <description>Destroy deployment step</description>
| <name>destroy</name>
| <parameter>
| <name>info</name>
| <type>org.jboss.deployment.DeploymentInfo</type>
| </parameter>
| </operation>
|
|
| </xmbean>
|
|
| </mbean>
|
| </server>
|
4. pack sar and copy it to server:
/jboss/server/deploy/dbdeployer.sar
+METAINF
++jboss-service.xml
+dbdeployer.jar
5. create and deploy test.ddr - this is simple jar file:
test.dbr
+META-INF
++INDEX.LIST
content of INDEX.LIST:
| ddd
|
| db.jar
| foo
|
6. create test bean:
| package test;
|
| import javax.ejb.Remote;
|
| /**
| * User: Deady
| * Date: 06.11.2008
| * Time: 17:08:24
| */
| @Remote
| public interface TestClassLoader {
|
| public Object loadClass(String className);
|
| }
|
| package test;
|
| import org.jboss.annotation.ejb.RemoteBinding;
|
| import javax.ejb.Stateless;
|
| /**
| * User: Deady
| * Date: 06.11.2008
| * Time: 17:09:06
| */
| @Stateless(name="DBClassLoader")
| @RemoteBinding(jndiBinding="test/DBClassLoader/remote")
| public class TestClassLoaderImpl implements TestClassLoader{
|
| public Object loadClass(String className) {
| try {
| Class cl = Thread.currentThread().getContextClassLoader().loadClass(className);
| System.out.println("loaded = " + cl);
| Object o = cl.newInstance();
| return o;
| } catch (Exception e) {
| e.printStackTrace();
| }
| return null;
| }
| }
|
|
7. create test class:
| package foo;
|
| import java.io.Serializable;
|
| /**
| * User: Deady
| * Date: 07.11.2008
| * Time: 17:19:00
| */
| public class Test implements Serializable {
|
| public String hello() {
| return "hello world3";
| }
|
| }
|
|
compile it and copy to path, from which DBClassLoader will read it ("/home/Deady/testbean/classes/" in my case)
8. test it works:
| package test;
|
| import foo.Test;
|
| import javax.naming.InitialContext;
| import javax.naming.Context;
| import java.util.Properties;
|
| /**
| * User: Deady
| * Date: 06.11.2008
| * Time: 17:16:26
| */
| public class Client {
|
| public static void main(String[] args) throws Exception {
| Properties p = new Properties();
|
|
| p.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
| p.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
| p.put(Context.PROVIDER_URL, "jnp://192.168.0.87:1099");
| InitialContext ctx = new InitialContext(p);
| TestClassLoader l = (TestClassLoader) ctx.lookup("test/DBClassLoader/remote");
| Object c = l.loadClass("foo.Test");
| if (c==null) {
| System.out.println("null");
| }
| else {
| if (c instanceof Test) {
| System.out.println(((Test)c).hello());
| }
| else {
| System.out.println(c.getClass());
| }
| }
|
|
| }
|
| }
|
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4187739#4187739
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4187739
17 years, 5 months