Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Trouble connecting to a PHP SoapServer module

53 views
Skip to first unread message

KASmith

unread,
Jan 10, 2014, 4:00:42 PM1/10/14
to
I have developed a Soap server program, index.php, written in PHP,
using the PHP built-in SoapServer. I am running this on my development
laptop using Apache and the XAMPP stack. This program loads a
pre-defined WSDL file that defines the Soap locations as:

<wsdl:service name="CB_Server">
<wsdl:port name="CB_ServerSoap" binding="tns:CB_ServerSoap">
<soap:address location="http://localhost/CB_ServerSoap"/>
</wsdl:port>
</wsdl:service>

I am sending requests to it from SoapServer using the address as:
http://localhost/CB_Server/index.php I am also able to edit this
section of the WSDL and have tried quite a few variations on these
values, but always with the results described below.


Each time I try the request, SoapUI shows me the response as the HTML
that Apache sends when it does not recognize the file request. I get:
--other stuff--
<body>
<h1>Object not found!</h1>
<p>The requested URL was not found on this server.


It seems that I am not using the correct address for the Soap request.
I have tried many variations of the address above, as suggested by
various blog messages:
http://localhost/CB_Server/index.php
http://localhost/CB_Server/
http://localhost/CB_Server
http://localhost/index.php
http://localhost/index

I have also loaded this program into a remote server and repeated this
test. I also get the same results, that the server program sends back
a 404 type error," URL was not found on this server".


I wrote an extremely minimal test server and client program and got
the same results from this pair. This led me to concluded that the
problem is not related to using SoapUI. I am completely confused.


Can anyone suggest what the correct address should be?

Or, is there some other factor that could be producing this result?

Is theret a reason that testing using local-host and SoapUI would not
work?


Any insight would be greatly appreciated.


(I would be pleased to post any of these files, or email them to any
interested parties, if that would help in getting this resolved.)

Thanks for thinking about this.

Message has been deleted

KASmith

unread,
Jan 12, 2014, 11:23:12 AM1/12/14
to
On Sat, 11 Jan 2014 17:02:58 -0800, Michael Vilain
<vil...@NOspamcop.net> wrote:

>In article <73n0d9l0915a27b1i...@4ax.com>,
>What do localhost's server logs show?
>
>Try running a simple page with only
>
><?php phpinfo(); ?>
>
>in it. Does it display the text or a page of information on your php
>setup?
>
>Have you edited Apache's configuration to enable php and restarted
>apache?

Michael,

Thanks for the suggestions.

My problem is specifically with the SoapServer operation. As I
understand it, when SoapServer is instantiated, Apache (the web server
I am using) creates a "child process" which runs separately from the
normal Apache process of serving up HTML pages (which continues
normally).

Apparently, when I send a SOAP message into Apache, it is being
handled by the normal HTML server, not being sent to the SOAP server.
That is what I am trying to figure out.

I took your suggestion and reviewed the server logs. They show a
number of warning messages, but after reading about them, I don't
think they show anything sinister.

Yes, php is enabled in Apache, as the SoapServer program does run.

I am now looking for an understanding of how the incoming Soap
messages get routed to the "child process" that is supposed to handle
them. That seems to be my problem.

Jonathan Stein

unread,
Jan 13, 2014, 10:22:08 AM1/13/14
to
Den 12-01-2014 17:23, KASmith skrev:

> My problem is specifically with the SoapServer operation. As I
> understand it, when SoapServer is instantiated, Apache (the web server
> I am using) creates a "child process" which runs separately from the
> normal Apache process of serving up HTML pages (which continues
> normally).

If you're using SOAP over HTTP, a SOAP message is no different from any
other HTTP request.

Basically, Apache forwards the request to the PHP interpreter, and the
response is sent back to the client - just as any other request to a PHP
page.

> Yes, php is enabled in Apache, as the SoapServer program does run.

How do you conclude that the SoapServer program runs?

When you have this line:
<soap:address location="http://localhost/CB_ServerSoap"/>
in your WSDL, you must of course run the server and the client on the
same machine.

But on the local machine, you should also be able to browse to
http://localhost/CB_ServerSoap
(the SOAP server will respond with an error message about an invalid
SOAP call, but you should not get a "404 Not found" error).

Regards

Jonathan

0 new messages