users@grizzly.java.net

Re: JaxwsHandler serving content on non-registered URLs under same path

From: Gonfi den Tschal <gonfidentschal_at_gmail.com>
Date: Thu, 29 Jan 2015 22:29:42 +0200

Thanks Alexey! Works.
I've tried 2.3.17 and 2.3.18, both work the same, saying "Not Found" when
registering in the way you demonstrated.
(I have not tried 2.3.18-SNAPSHOT at all.)

Gonfi


On Tue, Nov 11, 2014 at 2:55 AM, Oleksiy Stashok <oleksiy.stashok_at_oracle.com
> wrote:

> Hi,
>
> I've made some changes on 2.3.x branch.
> Can you pls. change the way you register the JaxwsHandler:
>
> * httpServer.getServerConfiguration().addHttpHandler(jaxwsHandler,*
> * HttpHandlerRegistration.bulder()*
> * .contextPath(path)*
> * .urlPattern("")*
> * .build());*
>
>
> and try the latest Grizzly 2.3.18-SNAPSHOT.
>
> Thank you.
>
> WBR,
> Alexey.
>
>
> On 06.11.14 05:42, Gonfi den Tschal wrote:
>
> Yes it's there:
>
> 1) clone the project https://github.com/optimaize/soapworks
>
> 2) run this class
> https://github.com/optimaize/soapworks/blob/master/exampleproject/server/src/main/java/com/optimaize/soapworks/exampleproject/server/boot/Boot.java
>
> 3) In the console you will see:
> Publishing soap web service:
> http://localhost:80/soap/v1/system/ping?wsdl
>
> 4) load that url in the browser to see the wsdl
>
> 5) change the url, anything under /soap/ will give you a wsdl. This is
> not desired from my point of view; changing to v2 also brings something.
>
> 6) change /soap/ to /soap2/ and you'll get
> Not Found
> Resource identified by path '/soap2/v2/system/ping', does not exist.
> Grizzly 2.3.17
>
> If you need another host name or port number then change it in
> GrizzlySoapWebServer on top new Host("localhost", 80)
>
> Greetings,
> Gonfi
>
>
> On Thu, Nov 6, 2014 at 6:21 AM, Oleksiy Stashok <
> oleksiy.stashok_at_oracle.com> wrote:
>
>> Hi,
>>
>> can I ask you to create a working project (for ex. on github) so it would
>> be easier to reproduce.
>>
>> Thank you.
>>
>> WBR,
>> Alexey.
>>
>>
>> On 05.11.14 07:46, Gonfi den Tschal wrote:
>>
>> QUESTION: How do I stop Grizzly from serving content on URLs for which
>> there is no handler, but are under the same path?
>>
>>
>> USERLAND CODE:
>>
>> full class at http://nopaste.info/05ffefc3fb.html
>>
>> public static void main(String[] args) throws IOException {
>> HttpServer httpServer = new HttpServer();
>> httpServer.addListener(new NetworkListener("jaxws-listener",
>> "localhost", 8090));
>> httpServer.getServerConfiguration().addHttpHandler(new
>> JaxwsHandler(new BarService()), "/jaxws/hello");
>> httpServer.start();
>> System.in.read();
>> }
>>
>> @WebService
>> private static class BarService {
>> @WebMethod
>> public String hello() {
>> return "hello world";
>> }
>> }
>>
>>
>> Loading the URL http://localhost:8090/jaxws/hello?wsdl in the browser
>> brings the correct document, see http://nopaste.info/f8ec12f601.html
>>
>> However, loading any other url under the /jaxws/ path brings a similar
>> document, for example http://localhost:8090/jaxws/helllloooooo?wsdl see
>> http://nopaste.info/d7e6013a1a.html
>>
>> A difference is at the end:
>>
>> 1. <soap:address location="http://localhost:8090/jaxws/hello"/>
>>
>>
>> 1. <soap:address location="http://localhost:8090/jaxws"/>
>>
>>
>> What are the arguments for this behavior?
>> And what can I do to get a 404 on all URLs that are not registered?
>>
>> Software used:
>> - grizzly-http-server
>> - grizzly-http-server-jaxws
>> tried versions 2.3.17 (latest) and 2.3.7
>>
>> Greetings,
>> Gonfi
>>
>>
>>
>
>