[ 
https://issues.apache.org/jira/browse/AXIS2-5381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mikhail Kuzmin updated AXIS2-5381:
----------------------------------

    Description: 
Hello, 

Using the wsdl2java utility we generate from the VocalPassword.wsdl the Java 
source code files (VocalPasswordServer.java, 
VocalPasswordServerCallbackHandler.java, VocalPasswordServerStub.java) which 
contains the code for binding to the VocalPassword web service, sending the 
request and receiving the response. But then we are trying to use these Java 
stubs to invoke request to the VocalPassword web service – we get the 
“exception org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found”


Root cause:

According to the Web Services Description Language (WSDL) speciation 
(http://www.w3.org/TR/wsdl)  part 4.5 http:operation, http:operation location 
is combined with the URI specified in the http:address element to form the full 
URI for the HTTP request.
Initial VocalPassword.wsdl includes
      <http:operation location="/StartSession" />
and
     <http:address 
location="http://localhost/VocalPassword/VocalPasswordServer.asmx"; />

But when we are trying to send the POST request to the VocalPassword web 
service, instead of the 

POST /VocalPassword/VocalPasswordServer.asmx/StartSession HTTP/1.1
Host: 192.168.108.119
Content-Type: application/x-www-form-urlencoded
Content-Length: length
configSetName=string

the following request

POST /StartSession HTTP/1.1
Host: 192.168.108.119
Content-Type: application/x-www-form-urlencoded
Content-Length: length
configSetName=string

is received by the VocalPassword ws server. 
i.e. “/VocalPassword/VocalPasswordServer.asmx” (http:address location) is 
missed in the POST request.

Here are our steps:

1) GenerateVocalPassword Java stubs using the VocalPassword.wsdl
wsdl2java -uri VocalPassword.wsdl -o . -p httppost -pn 
VocalPasswordServerHttpPost -uw -uon -u –Eosv

2) Compile created Java stubs by Ant
ant

This command will invoke JDK to compile created Java stubs. The compiled files 
will be packed into JAR file and placed to \build\lib\ subdirectory

3) Set VocalPassword operation name (in our case - StartSession) , pass to the 
VocalPasswordServerStub (VocalPasswordServerStub.java) constructor your 
endpoint (in our case - “http:// 
192.168.108.119/VocalPassword/VocalPasswordServer.asmx”) and send request to 
VocalPassword ws server.
!!! In your case, for problem reproducing use your own system with configured 
sniffer tool (e.g. Wireshark) instead of the VocalPassword ws server (i.e. 
configured ws server is not needed).  

Expected result:

POST /VocalPassword/VocalPasswordServer.asmx/StartSession HTTP/1.1
Host: 192.168.108.119
Content-Type: application/x-www-form-urlencoded
Content-Length: length
configSetName=string

is received by the ws server

Actual result:

POST /StartSession HTTP/1.1
Host: 192.168.108.119
Content-Type: application/x-www-form-urlencoded
Content-Length: length
configSetName=string

is received by the ws server and exception org.apache.axis2.AxisFault: 
Transport error: 404 Error: Not Found occurs.


  was:
Hello, 

Using the wsdl2java utility we generate from the VocalPassword.wsdl (attached) 
the Java source code files (VocalPasswordServer.java, 
VocalPasswordServerCallbackHandler.java, VocalPasswordServerStub.java) which 
contains the code for binding to the VocalPassword web service, sending the 
request and receiving the response. But then we are trying to use these Java 
stubs to invoke request to the VocalPassword web service – we get the 
“exception org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found”


Root cause:

According to the Web Services Description Language (WSDL) speciation 
(http://www.w3.org/TR/wsdl)  part 4.5 http:operation, http:operation location 
is combined with the URI specified in the http:address element to form the full 
URI for the HTTP request.
Initial VocalPassword.wsdl includes
      <http:operation location="/StartSession" />
and
     <http:address 
location="http://localhost/VocalPassword/VocalPasswordServer.asmx"; />

But when we are trying to send the POST request to the VocalPassword web 
service, instead of the 

POST /VocalPassword/VocalPasswordServer.asmx/StartSession HTTP/1.1
Host: 192.168.108.119
Content-Type: application/x-www-form-urlencoded
Content-Length: length
configSetName=string

the following request

POST /StartSession HTTP/1.1
Host: 192.168.108.119
Content-Type: application/x-www-form-urlencoded
Content-Length: length
configSetName=string

is received by the VocalPassword ws server. 
i.e. “/VocalPassword/VocalPasswordServer.asmx” (http:address location) is 
missed in the POST request.

Here are our steps:

1) GenerateVocalPassword Java stubs using the VocalPassword.wsdl
wsdl2java -uri VocalPassword.wsdl -o . -p httppost -pn 
VocalPasswordServerHttpPost -uw -uon -u –Eosv

2) Compile created Java stubs by Ant
ant

This command will invoke JDK to compile created Java stubs. The compiled files 
will be packed into JAR file and placed to \build\lib\ subdirectory

3) Set VocalPassword operation name (in our case - StartSession) , pass to the 
VocalPasswordServerStub (VocalPasswordServerStub.java) constructor your 
endpoint (in our case - “http:// 
192.168.108.119/VocalPassword/VocalPasswordServer.asmx”) and send request to 
VocalPassword ws server.
!!! In your case, for problem reproducing use your own system with configured 
sniffer tool (e.g. Wireshark) instead of the VocalPassword ws server (i.e. 
configured ws server is not needed).  

Expected result:

POST /VocalPassword/VocalPasswordServer.asmx/StartSession HTTP/1.1
Host: 192.168.108.119
Content-Type: application/x-www-form-urlencoded
Content-Length: length
configSetName=string

is received by the ws server

Actual result:

POST /StartSession HTTP/1.1
Host: 192.168.108.119
Content-Type: application/x-www-form-urlencoded
Content-Length: length
configSetName=string

is received by the ws server and exception org.apache.axis2.AxisFault: 
Transport error: 404 Error: Not Found occurs.


    
> wsdl2Java: operation location doesn't concatenate with address location (or 
> with endpoint)
> ------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-5381
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5381
>             Project: Axis2
>          Issue Type: Bug
>          Components: wsdl
>    Affects Versions: 1.6.2
>         Environment: Axis2 1.6.2 (wsdl2java)
> VacalPassword.wsdl (from the VacalPassword WS Server - www.nuance.com) 
>            Reporter: Mikhail Kuzmin
>              Labels: patch
>
> Hello, 
> Using the wsdl2java utility we generate from the VocalPassword.wsdl the Java 
> source code files (VocalPasswordServer.java, 
> VocalPasswordServerCallbackHandler.java, VocalPasswordServerStub.java) which 
> contains the code for binding to the VocalPassword web service, sending the 
> request and receiving the response. But then we are trying to use these Java 
> stubs to invoke request to the VocalPassword web service – we get the 
> “exception org.apache.axis2.AxisFault: Transport error: 404 Error: Not Found”
> Root cause:
> According to the Web Services Description Language (WSDL) speciation 
> (http://www.w3.org/TR/wsdl)  part 4.5 http:operation, http:operation location 
> is combined with the URI specified in the http:address element to form the 
> full URI for the HTTP request.
> Initial VocalPassword.wsdl includes
>       <http:operation location="/StartSession" />
> and
>      <http:address 
> location="http://localhost/VocalPassword/VocalPasswordServer.asmx"; />
> But when we are trying to send the POST request to the VocalPassword web 
> service, instead of the 
> POST /VocalPassword/VocalPasswordServer.asmx/StartSession HTTP/1.1
> Host: 192.168.108.119
> Content-Type: application/x-www-form-urlencoded
> Content-Length: length
> configSetName=string
> the following request
> POST /StartSession HTTP/1.1
> Host: 192.168.108.119
> Content-Type: application/x-www-form-urlencoded
> Content-Length: length
> configSetName=string
> is received by the VocalPassword ws server. 
> i.e. “/VocalPassword/VocalPasswordServer.asmx” (http:address location) is 
> missed in the POST request.
> Here are our steps:
> 1) GenerateVocalPassword Java stubs using the VocalPassword.wsdl
> wsdl2java -uri VocalPassword.wsdl -o . -p httppost -pn 
> VocalPasswordServerHttpPost -uw -uon -u –Eosv
> 2) Compile created Java stubs by Ant
> ant
> This command will invoke JDK to compile created Java stubs. The compiled 
> files will be packed into JAR file and placed to \build\lib\ subdirectory
> 3) Set VocalPassword operation name (in our case - StartSession) , pass to 
> the VocalPasswordServerStub (VocalPasswordServerStub.java) constructor your 
> endpoint (in our case - “http:// 
> 192.168.108.119/VocalPassword/VocalPasswordServer.asmx”) and send request to 
> VocalPassword ws server.
> !!! In your case, for problem reproducing use your own system with configured 
> sniffer tool (e.g. Wireshark) instead of the VocalPassword ws server (i.e. 
> configured ws server is not needed).  
> Expected result:
> POST /VocalPassword/VocalPasswordServer.asmx/StartSession HTTP/1.1
> Host: 192.168.108.119
> Content-Type: application/x-www-form-urlencoded
> Content-Length: length
> configSetName=string
> is received by the ws server
> Actual result:
> POST /StartSession HTTP/1.1
> Host: 192.168.108.119
> Content-Type: application/x-www-form-urlencoded
> Content-Length: length
> configSetName=string
> is received by the ws server and exception org.apache.axis2.AxisFault: 
> Transport error: 404 Error: Not Found occurs.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to