Hi Gwendo,
Thanks a lot that solved my problem.
Regards,
Nicoktay.
gwendo wrote
Hi Nicoktay,
Unfortunately the documentation is a bit unclear of how to make the calls
and what it expects.
There are two ways of creating assets through the REST interface both
which produces Atom Entries as responses. Ideally we should be able to
return other responses than Atom Entries.
The way you are trying to create the asset is by posting a stream, this
also produces an Atom Entry as response.
When posting as a stream you also need to include a slug header specifying
the asset name. Based on the extension we will determine what type of
asset it is.
Something like this:
Response response=
client.path("guvnor-5.4.0.Final-jboss-as-7.0/rest/packages/mortgages/assets")
.accept(MediaType.APPLICATION_ATOM_XML_TYPE)
.type(MediaType.APPLICATION_OCTET_STREAM_TYPE)
.header("slug", "myAssetName.drl")
.post(source);
nicoktay wrote
> Thanks for the reply Jervis,
>
> Regarding to the problem I tried to create a RuleModel and wanted to
> store this as drl asset.
> Followed your suggestion but still I am mistaken in somewhere.
>
> String drl = p.marshal(rulemodel);
>
> WebClient client =
>
WebClient.create("http://127.0.0.1:8080/","admin","admin",null);
> InputStream source = new
> ByteArrayInputStream(read.marshal(m).getBytes());
> Response response=
>
client.path("guvnor-5.4.0.Final-jboss-as-7.0/rest/packages/mortgages/assets").accept("application/xml").post(source);
>
>
> and I had following error
>
*
> 30-ene-2013 18:00:10 org.apache.cxf.phase.PhaseInterceptorChain
> doDefaultLogging
> ADVERTENCIA: Interceptor for {http://127.0.0.1:8080/}WebClient has thrown
> exception, unwinding now
> org.apache.cxf.interceptor.Fault: Could not send Message.
> at
>
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
> at
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247)
> at
> org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:616)
> at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:596)
> at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:241)
> at org.apache.cxf.jaxrs.client.WebClient.post(WebClient.java:250)
> at ExpertSystem.Main_FireRules.testRuleModel(Main_FireRules.java:281)
> at ExpertSystem.Main_FireRules.main(Main_FireRules.java:68)
> Caused by: java.io.IOException: Server returned HTTP response code: 415
> for URL:
>
http://127.0.0.1:8080/guvnor-5.4.0.Final-jboss-as-7.0/rest/packages/mortg...
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
> Source)
> at java.lang.reflect.Constructor.newInstance(Unknown Source)
> at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown
> Source)
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
> Source)
> at
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2190)
> at
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2071)
> at
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1925)
> at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:662)
> at
>
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> ... 7 more
> Caused by: java.io.IOException: Server returned HTTP response code: 415
> for URL:
>
http://127.0.0.1:8080/guvnor-5.4.0.Final-jboss-as-7.0/rest/packages/mortg...
> at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
> Source)
> at java.net.HttpURLConnection.getResponseCode(Unknown Source)
> at
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2102)
> ... 12 more
*
>
>
> Will be greatful for any help thanks,
>
> Nicoktay.
>
> Jervis Liu wrote
>> On 2013/1/30 0:10, nicoktay wrote:
>>> Hi all,
>>>
>>> I was trying to use POST method of REST API to create new asset and
>>> insert
>>> it into guvnor as in the document
>>>
http://docs.jboss.org/drools/release/5.5.0.Final/drools-guvnor-docs/html/...
>>>
<http://docs.jboss.org/drools/release/5.5.0.Final/drools-guvnor-docs/html/ch09.html#d0e3500>
>>>
>>> Below I tried to create new asset using POST, please guide me where I
>>> was
>>> wrong.
>>>
>>> WebClient client =
>>>
WebClient.create("http://127.0.0.1:8080/","admin","admin",null);
>>>
>>> Response response=
>>>
client.path("guvnor-5.4.0.Final-jboss-as-7.0/rest/packages/mortgages/assets/newtechnicalrule.drl").accept("text/plain").post(rule);
>>> // rule is string drl which will be created with the name of
>>> "newtechnicalrule.drl".
>> When you use POST to create an asset, the correct url is
>>
http://localhost:8080/guvnor-5.5.0.Final/rest/packages{packageName}/assets
>>
<http://localhost:8080/guvnor-5.5.0.Final/rest/packages%7BpackageName%7D/assets>
>>
>> The POST method produces MIME-Types of application/atom+xm, not
>> "text/plain"
>>
>> Cheers,
>> Jervis
>>
>> *
>>
>>
>>
>>>
>>> Welcome to any help thanks,
>>>
>>> Nicoktay.
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>>
http://drools.46999.n3.nabble.com/REST-API-new-asset-tp4021927.html
>>> Sent from the Drools: User forum mailing list archive at
Nabble.com.
>>> _______________________________________________
>>> rules-users mailing list
>>>
>> rules-users@.jboss
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users@.jboss
--
View this message in context:
http://drools.46999.n3.nabble.com/REST-API-new-asset-tp4021927p4021992.html
Sent from the Drools: User forum mailing list archive at
Nabble.com.