Not exactly sure what the problem is. If you want to send me over the module you did, i can take a look at it, and send you back a patch of any changes needed to get it to run.
Its confusing and annoying and I don't really understand whats happening. Like I mentioned earlier that the module installed successfully. I went through the code (instead of just blindly running the commands) to understand whats really happening. So the test checks to see if "Hello World" is returned. It creates the build only if the tests run successful.
I did an /mvn install/ again and it installed successfully. Now this folder was located outside of geoserver/src (I am running geoserver from source code).
So i created a copy of the folder inside of geoserver/src and I also did an mvn eclipse:eclipse so that the module has the rest classpath. I then did a /mvn install/ but it gave a build failure because the tests failed. The surefire test report said it was getting "Geoserver Configuration API" whereas it was expecting "Hello World".
I went back to the original folder and did a mvn install and it installed succesfully. So I deleted the copy, imported this original folder to eclipse, did the /"mvn eclipse:eclipse/" and then did the mvn install but the tests failed. 
I re-build the module from scratch and skipped the /mvn eclipse:eclipse/ part (because I felt it was probably the cause of the error) But all I get now is the test failure. I do not understand how it was installing successfully earlier (I did not look at the surefire report then). It obviously was getting "Hello World" in return...how is it that it was working then and not now.
On Mon, Aug 17, 2009 at 12:44 PM, Sebastin Kolman <saby83@anonymised.com <mailto:saby83@anonymised.com>> wrote:
hmm....so here is what happened.
I tried to follow your first solution of modifying the class path of
the web module. But eclipse did not recognize the hello_rest module
because I had not set it as a java project. So I deleted the project
and started a new java project and followed the instructions again
provided at
http://docs.geoserver.org/1.7.x/developer/programming-guide/rest-services/implementing.html
There were some errors like:
/
/The declared package "org.geoserver.hellorest" does not match
the expected package "src.main.java.org.geoserver.hellorest" HelloResource.java hello_rest/src/main/java/org/geoserver/hellorest line 1 Java Problem
/
/The import org.geoserver cannot be resolved HelloResource.java hello_rest/src/main/java/org/geoserver/hellorest line 4 Java Problem/
/The import org.restlet cannot be resolved HelloResource.java hello_rest/src/main/java/org/geoserver/hellorest line 6 Java Problem/
But I did the mvn install and the build was successful. I added the
module to the web module's classpath and restarted the geoserver by
running the Start.java file under
web/src/test/java/org/vfny/geoserver/jetty/. But the http requests,
http://localhost:8080/geoserver/rest/hello_rest/hello.txt
http://localhost:8080/geoserver/rest/hello_rest
still return the exception.
I also tried running a separate local geoserver. So I installed
geoserver 1.7.6 and then added the hello_rest-1.7.5-SNAPSHOT.jar
file in the WEB-INF/lib folder. I sensed it would not work becasue
the versions are different. When I sent the http requests it
returned no exceptions. All that the page returned was "Geoserver
Configuration API". I checked the log and it seems that the request
was successful:
/0:0:0:0:0:0:0:1 - - [17/Aug/2009:14:49:20 +0000] "GET
/geoserver/rest/hello_rest/hello.txt HTTP/1.1" 200 138
0:0:0:0:0:0:0:1 - - [17/Aug/2009:15:01:38 +0000] "GET
/geoserver/rest/hello_rest HTTP/1.1" 200 138/
Does this mean the module was integreated successfully? I thought
the request was supposed to return the test "Hello World"
On Fri, Aug 14, 2009 at 12:00 PM, Justin Deoliveira
<jdeolive@anonymised.com <mailto:jdeolive@anonymised.com>> wrote:
You have a few options for getting the extension running as part
of geoserver.
The first is to manually modify the classpath of the web module,
and add the hello_rest module. (Right click on module in package
explorer, click Properties, go to Java Build Path -> Projects)
The second is to set up a profile for the module, and run
eclipse:eclipse with the profile engaged, which will set up the
dependency from the web module. This is quite a bit more work, see:
http://docs.geoserver.org/1.7.x/en/developer/policies/community-modules.html#id3
(Just steps 1 - 3)
The last would be if you have a local geoserver that you use you
can drop the file hello_rest/target/hello_rest-1.0-SNAPSHOT.jar
into the WEB-INF/lib directory of your geoserver installation,
and restart it.
Hope that helps.
-Justin
Sebastin Kolman wrote:
Hi Justin,
I followed your instructions and the module installed just
fine. As I mentioned earlier I am running geoserver from the
source code through eclipse. I start geoserver by running
the Start.java file under web/src/test/java/org/vfny/
geoserver/jetty/.
After doing the mvn install will it work if i simple stop
and start the servert? Or do I need to do a mvn install on
the whole geoserver project again ?
How do I test this module? I assume it is by going to this url:
http://localhost:8080/geoserver/rest/hello_rest/hello.txt
http://localhost:8080/geoserver/rest/hello_rest
On Thu, Jun 25, 2009 at 4:25 AM, Justin Deoliveira
<jdeolive@anonymised.com <mailto:jdeolive@anonymised.com>
<mailto:jdeolive@anonymised.com>>
wrote:
Hi Sebastin,
Thanks for sending me over your code. I took at a look at
it and here is
what I found.
First off, there was a problem with the documentation, it
was out of
date.
Apologies I should have seen that right away. The
createSupportedFormats()
method should return a list, rather than a map. I have
updated the
documentation here:
http://docs.geoserver.org/1.7.x/developer/programming-guide/rest-services/implementing.html
There were also a few other issues with teh code:
* The sources and test files are not in the proper
location with
regard to
packaging. You need to move
src/main/java/HelloResource.java to
src/main/java/org/geoserver/hellorest/HelloResource.java. And
similarly for
the the HelloResourceTest.java file.
* A few imports were missing from HelloResource:
import org.geoserver.rest.format.StringFormat;
import org.restlet.data.MediaType;
You also now will need:
import java.util.ArrayList;
import java.util.List;
Let me know if that works. After making those changes I
was able to
successfully run HelloResourceTest.
-Justin
On Wed, 24 Jun 2009 11:43:05 -0400, Sebastin Kolman
<saby83@anonymised.com <mailto:saby83@anonymised.com>
<mailto:saby83@anonymised.com>>
wrote:
> Thanks Justin. Did you mean just the hello_rest
module? I have
attached
it
> with this mail.
>
> I am also just learning Java so yeah I could be doing
a simple thing
really
> wrong.
>
> On Tue, Jun 23, 2009 at 9:51 PM, Justin Deoliveira
> <jdeolive@anonymised.com <mailto:jdeolive@anonymised.com>
<mailto:jdeolive@anonymised.com
<mailto:jdeolive@anonymised.com>>>wrote:
>
>> Hmmm... can you zip up your project and send it to me
in a private
email?
>> It looks like the classpath is somehow off, and it
would be nice
to look
>> at
>> the eclipse .classpath file, along with the sources.
>>
>> -Justin
>>
>> sabman wrote:
>>
>>> Thanks Justin.
>>>
>>> Here is what I was doing wrong. I created the folders
src/main/java and
>>> src/test/java under rest/hello_rest. When I created
the class
files,
>>> eclipse
>>> was creating the files under the rest/src/java
folder instead of
>>> rest/hello_rest/src/java.
>>>
>>> So now I made sure that the HelloResource.java file
is located
under
the
>>> correct folder and there were no errors. (But I
could see that the
>>> StringFormat and MediaType objects were not being
recognized
correctly.)
>>> Also I moved the applicationContext.xml file from
the resources
>>> folder(as
>>> mentioned in the tutorial) to the src/main/java
folder (as you
>>> mentioned.).
>>> Also made sure the HelloResourceTest.java file is
under the correct
>>> folder.
>>> Now when I run mvn install under the root module I
get the
following
>>> compilation error:
>>>
>>> [INFO] Compiling 1 source file to
>>>
/home/sabman/Documents/Projects/geoserver/src/rest/hello_rest/target/classes
>>> [INFO]
>>>
------------------------------------------------------------------------
>>> [ERROR] BUILD FAILURE [INFO]
>>>
------------------------------------------------------------------------
>>> [INFO] Compilation failure
>>>
/home/sabman/Documents/Projects/geoserver/src/rest/hello_rest/src/main/java/HelloResource.java:[9,7]
>>> org.geoserver.hellorest.HelloResource is not
abstract and does not
>>> override
>>> abstract method
>>>
createSupportedFormats(org.restlet.data.Request,org.restlet.data.Response)
>>> in org.geoserver.rest.AbstractResource
>>>
/home/sabman/Documents/Projects/geoserver/src/rest/hello_rest/src/main/java/HelloResource.java:[12,38]
>>>
createSupportedFormats(org.restlet.data.Request,org.restlet.data.Response)
>>> in org.geoserver.hellorest.HelloResource cannot override
>>>
createSupportedFormats(org.restlet.data.Request,org.restlet.data.Response)
>>> in org.geoserver.rest.AbstractResource; attempting
to use
incompatible
>>> return type found :
>>>
java.util.Map<java.lang.String,org.geoserver.rest.format.DataFormat>
>>> required:
java.util.List<org.geoserver.rest.format.DataFormat>
>>>
/home/sabman/Documents/Projects/geoserver/src/rest/hello_rest/src/main/java/HelloResource.java:[14,7]
>>> cannot find symbol symbol : class HashMap location:
class
>>> org.geoserver.hellorest.HelloResource
>>>
/home/sabman/Documents/Projects/geoserver/src/rest/hello_rest/src/main/java/HelloResource.java:[14,29]
>>> cannot find symbol symbol : class HashMap location:
class
>>> org.geoserver.hellorest.HelloResource
>>>
/home/sabman/Documents/Projects/geoserver/src/rest/hello_rest/src/main/java/HelloResource.java:[15,31]
>>> cannot find symbol symbol : class StringFormat
location: class
>>> org.geoserver.hellorest.HelloResource
>>>
/home/sabman/Documents/Projects/geoserver/src/rest/hello_rest/src/main/java/HelloResource.java:[15,45]
>>> cannot find symbol symbol : variable MediaType
location: class
>>> org.geoserver.hellorest.HelloResource
>>>
/home/sabman/Documents/Projects/geoserver/src/rest/hello_rest/src/main/java/HelloResource.java:[11,4]
>>> method does not override or implement a method from
a supertype
>>>
>>> Justin Deoliveira wrote:
>>>
>>>> sabman wrote:
>>>>
>>>>> I did not copy the jar file in the WEB-INF/lib
folder. I did
that now
>>>>> but
>>>>> its
>>>>> still the same.
>>>>>
>>>> Did you restart geoserver after you did?
>>>>
>>>>> There is no information related to the exception
in the log file.
>>>>> There
>>>>> are
>>>>> some errors messages in eclipse which I am listing
below:
>>>>>
>>>> Yeah, there probably won't be an exception, just
nothing in
the log
>>>> file.
>>>> It could also be that your applicationContext.xml
file is in
the wrong
>>>> place. Is it under src/main/java in the root of
your plugin
source?
>>>>
>>>> Can you do a "jar tvf hello_rest.jar" to give us a
listing of the
>>>> files.
>>>> Thanks.
>>>>
>>>>> 1) In the HelloResource.java file, For this piece
of code:
>>>>> protected Map<String, DataFormat>
createSupportedFormats(Request
>>>>> request,
>>>>> Response response) {
>>>>>
>>>>> HashMap formats = new HashMap();
>>>>> formats.put( "txt", new StringFormat(
MediaType.TEXT_PLAIN
>>>>> ));
>>>>>
>>>>> return formats;
>>>>> }
>>>>>
>>>>> These are the errors:
>>>>> @ Map<String, DataFormat> Multiple markers at this
line
>>>>> - The return type is incompatible with
>>>>> AbstractResource.createSupportedFormats(Request, Response)
>>>>> - implements
>>>>>
org.geoserver.rest.AbstractResource.createSupportedFormats
>>>>> @HashMap Multiple markers at this line
>>>>> - HashMap cannot be resolved to a type
>>>>>
>>>>> @StringFormat and @MediaType Multiple markers at
this line
>>>>> - StringFormat cannot be resolved to a type
>>>>> - MediaType cannot be resolved
>>>>>
>>>> These are because the rest module is not on the
classpath of your
>>>> module.
>>>> Can you run a mvn eclipse:eclipse in the root of
your module
and then
>>>> refresh the project in eclipse. I think the tutorial is
lackign that
>>>> step.
>>>>
>>>>> 2) When i start geoserver from eclipse by running
the Start.java
file
>>>>> I
>>>>> see
>>>>> the following warning messages in the console:
>>>>>
>>>>> Jun 22, 2009 11:14:11 AM
>>>>> it.geosolutions.imageio.gdalframework.GDALUtilities
>>>>> loadGDAL
>>>>> WARNING: Native library load
failed.java.lang.UnsatisfiedLinkError:
no
>>>>> gdaljni in java.library.path
>>>>> ..
>>>>> log4j:WARN File option not set for appender
[geoserverlogfile].
>>>>> log4j:WARN Are you using FileAppender instead of
ConsoleAppender?
>>>>>
>>>> That is normal, you can ignore that.
>>>>
>>>>>
>>>>> aaime wrote:
>>>>>
>>>>>> sabman ha scritto:
>>>>>> > I followed the instructions for the REST
services available
>>>>>>
>>>>>>>
http://docs.geoserver.org/1.7.x/developer/programming-guide/rest-services/implementing.html
>>>>>>> here . The only changes I had to make was in the
pom.xml
file where
>>>>>>> i
>>>>>>> changed the org.geoserver versions to
"1.7.5-SNAPSHOT" from
>>>>>>> "1.7.3-SNAPSHOT"
>>>>>>> (i compared it with the other pom.xml files). The
hello_rest module
>>>>>>> compiled
>>>>>>> successfully. I then tried testing the rest
service by
going to the
>>>>>>> URL:
>>>>>>>
>>>>>>> http://localhost:8080/geoserver/rest/hello.txt
>>>>>>>
http://localhost:8080/geoserver/rest/hello_rest/hello.txt
>>>>>>> http://localhost:8080/geoserver/rest/hello_rest
>>>>>>>
>>>>>>> I was not sure which one is correct so I tried
all in the
browser.
>>>>>>> And
>>>>>>> all I
>>>>>>> see is this:
>>>>>>>
>>>>>>> Geoserver Configuration API
>>>>>>>
>>>>>>> * exception
>>>>>>>
>>>>>>> What am I doing wrong here?
>>>>>>>
>>>>>> Did you actually include your jar/project in the
GeoServer
>>>>>> application
>>>>>> classpath? E.g, took the hello_rest jar and drop
it into
>>>>>> geoserver/WEB-INF/lib?
>>>>>>
>>>>>> Can you look in
$GEOSERVER_DATA_DIR/logs/geoserver.log and
see what
>>>>>> exception (with full strack trace) is thrown when
you try to
access
>>>>>> those
>>>>>> URL's?
>>>>>>
>>>>>> Cheers
>>>>>> Andrea
>>>>>>
------------------------------------------------------------------------------
>>>>>> Are you an open source citizen? Join us for the
Open Source
Bridge
>>>>>> conference!
>>>>>> Portland, OR, June 17-19. Two days of sessions,
one day of
>>>>>> unconference:
>>>>>> $250.
>>>>>> Need another reason to go? 24-hour hacker lounge.
Register
today!
>>>>>>
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
>>>>>> _______________________________________________
>>>>>> Geoserver-devel mailing list
>>>>>> Geoserver-devel@lists.sourceforge.net
<mailto:Geoserver-devel@lists.sourceforge.net>
<mailto:Geoserver-devel@lists.sourceforge.net
<mailto:Geoserver-devel@lists.sourceforge.net>>
>>>>>>
https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>>>>>
>>>> --
>>>> Justin Deoliveira
>>>> OpenGeo - http://opengeo.org
>>>> Enterprise support for open source geospatial.
>>>>
------------------------------------------------------------------------------
>>>> Are you an open source citizen? Join us for the
Open Source Bridge
>>>> conference!
>>>> Portland, OR, June 17-19. Two days of sessions, one
day of
>>>> unconference:
>>>> $250.
>>>> Need another reason to go? 24-hour hacker lounge.
Register today!
>>>>
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
>>>> _______________________________________________
>>>> Geoserver-devel mailing list
>>>> Geoserver-devel@lists.sourceforge.net
<mailto:Geoserver-devel@lists.sourceforge.net>
<mailto:Geoserver-devel@lists.sourceforge.net
<mailto:Geoserver-devel@lists.sourceforge.net>>
>>>>
https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>>>
>>>
>>
>> --
>> Justin Deoliveira
>> OpenGeo - http://opengeo.org
>> Enterprise support for open source geospatial.
>>
--
Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.
-- Regards,
Sebastin
-- Justin Deoliveira
OpenGeo - http://opengeo.org
Enterprise support for open source geospatial.
-- Regards,
Sebastin
--
Regards,
Sebastin