Error while creating OFBiz service

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Error while creating OFBiz service

Ankit
I am new to OFBiz and I am creating the simple ofbiz service and referring this link http://www.packtpub.com/article/apache-ofbiz-service-engine-part1

I created practice project into hot-deployment.

I created services in servicedef/services.xml as below for learningFirstService.xml

`<service name="learningFirstService" engine="java"
        location="org.ofbiz.practice.practice.PracticeServices" invoke="handleParameters">
        <description>Our First Service</description>
        <attribute name="firstName" type="String" mode="IN" optional="true" />
        <attribute name="lastName" type="String" mode="IN" optional="true" />
    </service>`
and created PracticeServices.java class into src.org.ofbiz.practice.practice pakcage and created method

    public static Map learningFirstService(DispatchContext dctx, Map context){

        System.out.println("learning first service called");
        Map resultMap = ServiceUtil.returnSuccess("You have called on service 'learningFirstService' successfully!");
        return resultMap;
    }
and in my ofbiz-component.xml

    <?xml version="1.0" encoding="UTF-8"?>
<ofbiz-component name="practice"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd">
      <resource-loader  name="main" type="component"/>

      <service-resource type="model" loader="main" location="servicedef/services.xml"/>

    <webapp name="practice"
       title="Practice"
       server="default-server"
       base-permission="OFBTOOLS"
       location="webapp/practice"
       mount-point="/practice"
       app-bar-display="true"/>
    <classpath type="dir" location="config"/>


</ofbiz-component>
learningforms.xml is like below

    <?xml version="1.0" encoding="UTF-8"?>
<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-form.xsd">

    <form name="TestingServices" type="single" target="${formTarget}">
        <field name="firstName"><text/></field>
        <field name="lastName"><text/></field>
        <field name="planetId"><text/></field>
        <field name="submit"><submit/></field>
    </form>
</forms>
and in controller.xml there is request mapping for showing learning form

     <request-map uri="TestFirstService">
            <event type="service" invoke="learningFirstService" />
            <response name="success" type="view" value="TestFirstService" />
        </request-map>
    <view-map name="TestFirstService" type="screen" page="component://practice/widget/PracticeScreens.xml#learningForm"/>
The learningForm in successfully opening. but when i click on submit button. it gives error in console like,

        Error in request handler:
    Exception: org.ofbiz.webapp.event.EventHandlerException
    Message: Problems getting the service model (Cannot locate service by name (learningFirstService))
    ---- cause ---------------------------------------------------------------------
    Exception: org.ofbiz.service.GenericServiceException
    Message: Cannot locate service by name (learningFirstService)
    ---- stack trace ---------------------------------------------------------------
    org.ofbiz.service.GenericServiceException: Cannot locate service by name (learningFirstService)
    org.ofbiz.service.DispatchContext.getModelService(DispatchContext.java:191)
    org.ofbiz.webapp.event.ServiceEventHandler.invoke(ServiceEventHandler.java:116)
    org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:648)
    org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:394)
    org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:224)
    org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:87)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:339)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Thread.java:619)
That error shows it can't locate the service that i defined. But can't understand where its going wrong. Please help me.

Thanks in advanced.
Ankit
Reply | Threaded
Open this post in threaded view
|

Re: Error while creating OFBiz service

Ankit
This post was updated on .
Hi, I solved that error. it was just loading error while server-startup due to syntax error. But i can see my service registered, but while accessing that service, that will saw me class not found exception.


Error in request handler:
Exception: org.ofbiz.webapp.event.EventHandlerException
Message: Service invocation error (org.ofbiz.practice.practice.PracticeServices)
---- cause ---------------------------------------------------------------------
Exception: java.lang.ClassNotFoundException
Message: org.ofbiz.practice.practice.PracticeServices
---- stack trace ---------------------------------------------------------------
java.lang.ClassNotFoundException: org.ofbiz.practice.practice.PracticeServices
java.net.URLClassLoader$1.run(URLClassLoader.java:202)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:190)
java.lang.ClassLoader.loadClass(ClassLoader.java:307)
java.lang.ClassLoader.loadClass(ClassLoader.java:248)
org.ofbiz.service.engine.StandardJavaEngine.serviceInvoker(StandardJavaEngine.java:97)
org.ofbiz.service.engine.StandardJavaEngine.runSync(StandardJavaEngine.java:57)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:396)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:224)
org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:163)
org.ofbiz.webapp.event.ServiceEventHandler.invoke(ServiceEventHandler.java:336)
org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:648)
org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:394)
org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:224)
org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:87)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:339)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:619)

I am giving the right package while declaring the service, Is their any other configuration for the classes ?

Thanks,
Ankit
Reply | Threaded
Open this post in threaded view
|

Re: Error while creating OFBiz service

Mansurjon Kurtov

You must check built.xml (ant) for your services classpath
Reply | Threaded
Open this post in threaded view
|

Re: Error while creating OFBiz service

Mansurjon Kurtov
In reply to this post by Ankit
And you must add to ofbiz-component.xml following code:
<classpath type="jar" location="build/lib/*"/>