Hi Bill,
Thank you very much for taking the time to sort this out. I'm pretty
sure you've identified the source of my problem. I was actually just
about to try (somewhat ignorantly, hoping for the best) to set the
ContentType request header to "urlencoded-post", which I hoped would
get rid of the null pointer exception. Even if it did, though, I
don't know that there wouldn't have been side effects. Your fix is
much better. Thank you.
james
On Dec 19, 2008, at 3:50 PM, Bill Branan wrote:
Hi James,
I logged this issue in the tracker https://fedora-commons.org/jira/browse/FCREPO-390
and checked in a fix. It turns out that the code was dereferencing
the mediaType (mimeType) even if it hadn't been supplied, resulting
in the NullPointerException you were seeing. I've updated the trunk
to include the updated REST API jar (0.5.3), so feel free to grab it
and see if this fixes your problem.
Thanks for reporting this. It's always good to get things like this
fixed.
Bill
On Thu, Dec 18, 2008 at 5:44 PM, Bill Branan <[email protected]
> wrote:
Hi James,
Your url looks correct except that there is not a controlGroup
parameter on modifyDatastream, that's only available on
addDatastream, but including it should not have made any difference,
and you mentioned testing without it anyway. I'm not sure off-hand
why you would be getting the NullPointerException. I'll add a test
to the REST API test suite and see if I have the same problem.
In the meantime, the code for DatastreamResource can be found here: http://fedora-commons.svn.sourceforge.net/viewvc/fedora-commons/fedora-rest/trunk/src/java/fedora/server/rest/DatastreamResource.java?revision=7386&view=markup&sortby=date
.
Bill
On Tue, Dec 16, 2008 at 1:57 PM, James Chartrand
<[email protected]> wrote:
I have successfully used the REST api to modify an xml datastream,
i.e., with control type X.
I am unsuccessfully, however, trying to use the REST api to modify a
datastream with control type E. So, calling the rest service with a
url like:
http://localhost:8080/fedora/objects/inu:inu-mntb-0000123456-pg-6ae567b8-9cef-4668-96bd-d43cb64c3491/datastreams/OCR_XML?dsLocation=http://someserver.edu/archive/mntb/kfiles/2008/0000123456/0000123456-00000162-001/xml/1593221_0030.xml&controlGroup=E&logMessage=Update&dsLabel=OCR%20XML%20File
I tried to follow the documentation as described here: http://fedora-commons.org/confluence/display/FCR30/Fedora+REST+API#FedoraRESTAPI-modifyDatastream
to construct the url.
The status I get back from the server for that call is 500 (internal
error). I've also tried urls without the dsLabel, logMessage, and
controlGroup, but same error.
the error that shows up in fedora/tomcat/logs/catalina.out is:
javax.ws.rs.WebApplicationException: java.lang.NullPointerException
at
fedora
.server.rest.BaseRestResource.handleException(BaseRestResource.java:
98)
at
fedora
.server
.rest
.DatastreamResource.addOrUpdateDatastream(DatastreamResource.java:417)
at
fedora
.server
.rest.DatastreamResource.modifyDatastream(DatastreamResource.java:268)
at sun.reflect.GeneratedMethodAccessor185.invoke(Unknown Source)
at
sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com
.sun.ws.rest.impl.model.method.dispatch.EntityParamDispatchProvider
$ResponseOutInvoker._dispatch(EntityParamDispatchProvider.java:128)
at
com
.sun
.ws
.rest
.impl
.model
.method
.dispatch
.ResourceJavaMethodDispatcher
.dispatch(ResourceJavaMethodDispatcher.java:65)
at
com
.sun
.ws.rest.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:118)
at
com
.sun
.ws
.rest.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:
96)
at
com
.sun
.ws
.rest.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:
56)
at
com
.sun
.ws
.rest.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:
96)
at
com
.sun
.ws
.rest
.impl
.uri
.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:49)
at
com
.sun
.ws
.rest
.impl
.application
.WebApplicationImpl.handleRequest(WebApplicationImpl.java:416)
at
com
.sun
.ws
.rest
.spi
.container.servlet.ServletContainer.service(ServletContainer.java:151)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
269)
at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
fedora
.server
.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
215)
at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
fedora
.server
.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
215)
at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
fedora
.server
.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
at
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
215)
at
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at
org
.apache
.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
213)
at
org
.apache
.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
174)
at
org
.apache
.catalina
.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at
org
.apache
.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org
.apache
.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at
org
.apache
.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
108)
at
org
.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
174)
at
org
.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
874)
at org.apache.coyote.http11.Http11BaseProtocol
$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
665)
at
org
.apache
.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
528)
at
org
.apache
.tomcat
.util
.net
.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at
fedora
.server
.rest
.DatastreamResource.addOrUpdateDatastream(DatastreamResource.java:399)
... 38 more
And in the fedora.log I see what I think is an associated error:
ERROR 2008-12-16 12:27:19.728 [http-8080-Processor25]
(DatastreamResource) java.lang.NullPointerException
but just that single line.
I thought I'd start by looking at line 417 of
fedora.server.rest.DatastreamResource.addOrUpdateDatastream, but I
can't find the source code for the REST api on sourceforge, although
I'm probably looking in the wrong place:
http://fedora-commons.svn.sourceforge.net/viewvc/fedora-commons/fedora/tags/release-3.1/src/java/fedora/server/
I also notice that in the test class, there doesn't seem to be a
test for this specific call, i.e., in:
http://fedora-commons.svn.sourceforge.net/viewvc/fedora-commons/fedora/tags/release-3.1/src/test/junit/fedora/test/api/TestRESTAPI.java
If someone could suggest what I might be doing wrong with the REST
call, or could point to where I could find the source code for the
REST api, it would be much appreciated.
thanks,
james
------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas,
Nevada.
The future of the web can't happen without you. Join us at MIX09 to
help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Fedora-commons-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-developers
------------------------------------------------------------------------------
_______________________________________________
Fedora-commons-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-developers