Mule 3: Creating a RESTful web service endpoint -
i'm trying create endpoint (i think that's right word?) in mule 3 responds requests. mule application runs within javaee web app within web container.
in web.xml, have mulerestreceiverservlet servlet defined handles requests urls begin "/rest/":
<web-app> <listener> <listener-class>org.mule.config.builders.mulexmlbuildercontextlistener</listener-class> </listener> <servlet> <servlet-name>mulerestservlet</servlet-name> <servlet-class>org.mule.transport.servlet.mulerestreceiverservlet</servlet-class> <load-on-startup /> </servlet> <servlet-mapping> <servlet-name>mulerestservlet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app> my <flow> looks this:
<flow name="myflow"> <servlet:inbound-endpoint path="category/service" /> <component> <singleton-object class="com.company.mycomponent" /> </component> <outbound-endpoint ... /> </flow> when sent request "http://localhost:8080/webappname/rest/category/service", expect invoke com.company.mycomponent class. instead, error:
org.mule.api.endpoint.malformedendpointexception: endpoint "service" malformed , cannot parsed. if name of global endpoint, check name correct, endpoint exists, , using correct configuration (eg "ref" attribute). note names on inbound , outbound endpoints cannot used send or receive messages; use named global endpoint instead.
i tried defining inbound endpoint global endpoint error message seems suggest, same error.
<servlet:endpoint name="myendpoint" path="category/service" /> ... <flow name="myflow"> <inbound-endpoint ref="myendpoint" /> <component> <singleton-object class="com.company.mycomponent" /> </component> <outbound-endpoint ... /> </flow> i've tried setting "path" attribute "rest/category/service" , "/rest/category/service", still got same error message.
what doing wrong? thanks.
the org.mule.transport.servlet.mulerestreceiverservlet works specific path convention allows directly query existing mule endpoint name or path. read javadoc here.
in case, use servlet:inbound-endpoint, need use org.mule.transport.servlet.mulereceiverservlet.
Comments
Post a Comment