You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@clerezza.apache.org by Luigi Selmi <lu...@gmail.com> on 2014/02/04 16:32:52 UTC
multipart messages upload
Hi all,
I need to upload rdf files to a service to be stored in a graph. I use
Clerezza within Stanbol and tried to implement the service like in the
following code snippet
@POST
@Path("multipartrdf")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("text/plain")
public String uploadMultipartRdf(@Context final UriInfo uriInfo,
@HeaderParam("Content-Type") String mediaType,
@FormDataParam("data") InputStream stream,
@FormDataParam("dataset") String dataset) throws Exception {
AccessController.checkPermission(new AllPermission());
final MGraph graph = new SimpleMGraph();
if(mediaType.equals(SupportedFormat.RDF_XML)) {
parser.parse(graph, stream, SupportedFormat.RDF_XML);
}
The problem here is that I need to add the following dependencies to my
project's pom file
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.8</version>
</dependency>
</dependencies>
The project is compiled but is not activated when I try to install it
because I need to import the same bundles in the Felix framework and it
raises the following conflicts:
Cannot start (org.osgi.framework.
BundleException: Uses constraint violation. Unable to resolve bundle
revision eu.fusepool.datalifecycle [182.1] because it is exposed to package
'javax.ws.rs' from bundle revisions com.sun.jersey.core [274.0] and
javax.ws.rs-api [267.0] via two dependency chains.
Chain 1:
eu.fusepool.datalifecycle [182.1]
import: (&(osgi.wiring.package=javax.ws.rs
)(version>=1.0.0)(!(version>=3.0.0)))
|
export: osgi.wiring.package=javax.ws.rs
com.sun.jersey.core [274.0]
Chain 2:
eu.fusepool.datalifecycle [182.1]
import: (osgi.wiring.package=org.apache.clerezza.jaxrs.utils)
|
export: osgi.wiring.package=org.apache.clerezza.jaxrs.utils; uses:=
javax.ws.rs
org.apache.clerezza.jaxrs.utils [147.0]
import: (&(osgi.wiring.package=javax.ws.rs
)(version>=1.0.0)(!(version>=3.0.0)))
|
export: osgi.wiring.package=javax.ws.rs
javax.ws.rs-api [267.0]) org.osgi.framework.BundleException: Uses
constraint violation. Unable to resolve bundle revision
eu.fusepool.datalifecycle [182.1] because it is exposed to package '
javax.ws.rs' from bundle revisions com.sun.jersey.core [274.0] and
javax.ws.rs-api [267.0] via two dependency chains.
Looking at the Clarezza API it seems there are some utilities to handle
multipart messages so that I shouldn't have the issues above but I couldn't
find any code snippet or example on how to use those utilities, can anyone
point me to an example ?
Thanks in advance
Luigi
Re: multipart messages upload
Posted by Reto Gmür <re...@wymiwyg.com>.
Hi Luigi
The jersey artifacts you are referring to work only with jersey. The
message body of a mulipart request can be parsed with standard jax-rs means.
Clerezza has a MessageBodyReader to parse Multi-Part requests. Rather than
using Non-Standard annotations you can use MultiPartBody. Simply let your
method have an unnatoated argument of type MultiPartBody.
http://clerezza.apache.org/apidocs/org/apache/clerezza/jaxrs/utils/form/MultiPartBody.html
Cheers,
Reto
On Tue, Feb 4, 2014 at 4:32 PM, Luigi Selmi <lu...@gmail.com> wrote:
> Hi all,
>
> I need to upload rdf files to a service to be stored in a graph. I use
> Clerezza within Stanbol and tried to implement the service like in the
> following code snippet
>
> @POST
> @Path("multipartrdf")
> @Consumes(MediaType.MULTIPART_FORM_DATA)
> @Produces("text/plain")
> public String uploadMultipartRdf(@Context final UriInfo uriInfo,
> @HeaderParam("Content-Type") String mediaType,
> @FormDataParam("data") InputStream stream,
> @FormDataParam("dataset") String dataset) throws Exception {
>
> AccessController.checkPermission(new AllPermission());
> final MGraph graph = new SimpleMGraph();
>
> if(mediaType.equals(SupportedFormat.RDF_XML)) {
> parser.parse(graph, stream, SupportedFormat.RDF_XML);
> }
>
> The problem here is that I need to add the following dependencies to my
> project's pom file
>
> <dependency>
> <groupId>com.sun.jersey</groupId>
> <artifactId>jersey-server</artifactId>
> <version>1.8</version>
> </dependency>
> <dependency>
> <groupId>com.sun.jersey.contribs</groupId>
> <artifactId>jersey-multipart</artifactId>
> <version>1.8</version>
> </dependency>
> </dependencies>
>
> The project is compiled but is not activated when I try to install it
> because I need to import the same bundles in the Felix framework and it
> raises the following conflicts:
>
> Cannot start (org.osgi.framework.
> BundleException: Uses constraint violation. Unable to resolve bundle
> revision eu.fusepool.datalifecycle [182.1] because it is exposed to package
> 'javax.ws.rs' from bundle revisions com.sun.jersey.core [274.0] and
> javax.ws.rs-api [267.0] via two dependency chains.
>
> Chain 1:
> eu.fusepool.datalifecycle [182.1]
> import: (&(osgi.wiring.package=javax.ws.rs
> )(version>=1.0.0)(!(version>=3.0.0)))
> |
> export: osgi.wiring.package=javax.ws.rs
> com.sun.jersey.core [274.0]
>
> Chain 2:
> eu.fusepool.datalifecycle [182.1]
> import: (osgi.wiring.package=org.apache.clerezza.jaxrs.utils)
> |
> export: osgi.wiring.package=org.apache.clerezza.jaxrs.utils; uses:=
> javax.ws.rs
> org.apache.clerezza.jaxrs.utils [147.0]
> import: (&(osgi.wiring.package=javax.ws.rs
> )(version>=1.0.0)(!(version>=3.0.0)))
> |
> export: osgi.wiring.package=javax.ws.rs
> javax.ws.rs-api [267.0]) org.osgi.framework.BundleException: Uses
> constraint violation. Unable to resolve bundle revision
> eu.fusepool.datalifecycle [182.1] because it is exposed to package '
> javax.ws.rs' from bundle revisions com.sun.jersey.core [274.0] and
> javax.ws.rs-api [267.0] via two dependency chains.
>
> Looking at the Clarezza API it seems there are some utilities to handle
> multipart messages so that I shouldn't have the issues above but I couldn't
> find any code snippet or example on how to use those utilities, can anyone
> point me to an example ?
>
> Thanks in advance
>
> Luigi
>