Re: Laszlo client for Keel?
Nils Döhring <[email protected]>
| Newsgroups | gmane.comp.java.keel.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi,
let me give you a summary of my efforts.
The first thing I did is 'fixing' the clnt-axis to enable communication
over webservices since this is suggested best practice both in flex and
laszlo. clnt-axis has everything needed to run, but unfortunately
something in the build system goes wrong since in
keel-assemble-client.xml, 'do.axis' is never true. thus i did a
workaround by adding the following lines to clnt-axis/build.xml:
<copy todir="${project.dir}/webapp/WEB-INF/" verbose="${verbose}">
<fileset dir="${keelmodule.clientconf}/axis">
<include name="**/*.wsdl"/>
<include name="server-config.wsdd"/>
</fileset>
</copy>
this is the only thing necessary to make clnt-axis work. the keel
modelservice is then by default available under
localhost/default/services/ModelService?wsdl.
My next step was to create the modules clnt-laszlo (and clnt-flex),
which was pretty easy since the only thing I had to do was to slice the
contents of laszlos web.xml into web-servlet.xml and
web-servlet-mapping.xml (same with flex, just a few more files). i took
clnt-struts as an example.
Another workaround had to be done with the whole lot of directories and
files that come with these clients. If i placed them -as suggested- in
conf/client/webapp, they will sooner or later get flattened. problem
lies here:
keel-build/import/keel-build-clnt.xml:
88 <copy todir="${project.dir}/temp/conf/client" flatten="true"
verbose="${verbose}">
so, time for another workaround (which also cleans up the somewhat messy
laszlo webapp structure).
1)
I created two directories in clnt-laszlo:
a)
conf/client/root-lps/ <-- all dirs in here go into the webapp root.
details:
conf/client/root-lps/clnt-laszlo <-- here i put the following dirs from
laszlo download: demos, docs, examples, lazlo-explorer, my-apps, tools
cont/client/root-lps/lps <-- this is the 'lps' directory from laszlo
download. it has to be in the webapp root ('hardcoded' in laszlo, i
asked them)
b)
conf/client/webapp-lps <-- all dirs in here go into WEB-INF/lps
(logically, this dir contains all dirs from laszlo download web-inf/lps)
2) clnt-laszlo/build.xml:
<project name="clnt-laszlo" default="Usage" basedir=".">
<property name="keelmodule.name" value="${ant.project.name}"/>
<property name="keelmodule" value="${keel.dist}/${keelmodule.name}"/>
<import file="${keel.dist}/keel-build/import/keel-build-clnt.xml"/>
<copy todir="${project.dir}/webapp/WEB-INF/lps" flatten="false"
verbose="${verbose}">
<fileset dir="${keelmodule.clientconf}/webapp-lps">
<include name="**/*"/>
</fileset>
</copy>
<copy todir="${project.dir}/webapp/lps" flatten="false"
verbose="${verbose}">
<fileset dir="${keelmodule.clientconf}/root-lps/lps">
<include name="**/*"/>
</fileset>
</copy>
<copy todir="${project.dir}/webapp/clnt-laszlo" flatten="false"
verbose="${verbose}">
<fileset dir="${keelmodule.clientconf}/root-lps/clnt-laszlo">
<include name="**/*"/>
</fileset>
</copy>
</project>
this if everything needed to get a working laszlo client. (I didn't test
all the lazlo samples, I think there are some problems with links, but
the system works)
then the fun part started. while I had absolutely no problems invoking
the webservice via flex (send/receive data), laszlo was making problems
here.
I've been fiddling aroung with laszlo-keel communication in whole
december and january and have more or less given up since I didn't find
the time to step deeply into axis webservices.
what I've found out is that laszlo currenty neither supports sequences
nor 'anyType's and I would suggest to look into the laszlo documentation
and model a custom LaszloModelService that is similar to the amazon or
google webservices, since these are working with laszlo. see these:
http://www.laszlosystems.com/lps-2.2/docs/reference/ --> RPC/soap,
RPC/rpc, RPC/remotecall
and
http://www.laszlosystems.com/lps-2.2/docs/guide/rpc-soap.html (list of
unsupported stuff at the end)
and here you can find what i posted on laszlo forums:
http://www.laszlosystems.com/developers/community/forums/search.php?s=&action=finduser&userid=2913
afaik, the docs still account for lps3. i tried both lps 2.2 and 3.0b1.
i can give two more tips:
1)
if you get an error:
error: «string#0| XSD_ANYSIMPLETYPE : Exception stack:
java.lang.NoSuchFieldError: XSD_ANYSIMPLETYPE at
com.laszlosystems.remote.soap.LZDefaultTypeMapping.<init>(LZDefaultTypeMapping.java:115)
you should check if your axis.jar is the same that comes with laszlo (it
was copied over with an older version in my case)
2)
you can enable a 'special' laszlo logger that really helps:
in web-inf/lps/config/lps.xml, add:
<logger name="httpclient.wire" additivity="false">
<priority value="debug" />
<appender-ref ref="lps" />
</logger>
the logfile can be found at web-inf/lps/work/logs
While I appreciate the sudden attention of my attempts, you guys
couldn't have chosen a more unmatching timeslot since I am in
preparation for my exams :-/ I will follow the ongoing discussion and
will try to make my brain remember as much as possible when it comes to
question, but more is not possible at the moment. If some of the above
explanations are unclear, I would be happy to attach a zipped
clnt-laszlo dir structure (EMPTY OF COURSE!) and the few files I've been
playing around with.
While doing the above I ran into two things that I found somehow not
well solved:
why is ALL the build config stuff merged in keel-build? wouldnt it be
more tidy to put those 'special' build commands that are required by
clnt-axis, clnt-laszlo, clnt-struts, etc into the build.xml's in their
respective dir? (prolly the question comes too late with the maven
switch at the doors)
when i changed the modelservice class in clnt-axis (and that happened
OFTEN!), i had to rebuild the whole project. isn't it possible to do
just a "ant build clnt-axis" or so?
i hope this wasn't too confusing, my brain hurts since days... :)
ahoj,
nils
ps: don't even think about trying to use laszlo javarpc, its even more
of a nightmare!!
Michael Nash wrote:
>Aleks:
>
>Thanks for your reply - yes, I see looking at the archives that Nils was
>giving it a try.
>
>Nils, anything we can do to help that effort along?
>
>Mike
>
>
>On Tue, 2005-02-08 at 15:19, Aleksandar Vidakovic wrote:
>
>
>>Salut Mike,
>>
>>unfortunately I had to freeze my efforts for a while (time ;-), but I
>>remember some mails not too long ago from another german developer who
>>seemed to have something usable. As far as I remember his name was Nils
>>Döhring...
>>
>>Hope this helps,
>>
>>Aleks
>>
>>P.S.: ... if there remains something to do with clnt-laszlo I would be
>>happy to help ;-)
>>
>>On Tue, 2005-02-08 at 13:31 -0500, Michael Nash wrote:
>>
>>
>>>Aleks:
>>>
>>>I seem to recall you were working on a Laszlo client for Keel? Can you
>>>let me know how that is going when you get a change? I have a client
>>>whose seen the Laszlo demos and was very impressed, they'd like to see
>>>how it might integrate with a back-end system.
>>>
>>>Thanks!
>>>
>>>Mike
>>>
>>>http://keelframework.org/documentation.shtml
>>>Keelgroup mailing list
>>>[email protected]
>>>http://lists.keelframework.com/listinfo.cgi/keelgroup-keelframework.com
>>>
>>>
>>>
>
>http://keelframework.org/documentation.shtml
>Keelgroup mailing list
>[email protected]
>http://lists.keelframework.com/listinfo.cgi/keelgroup-keelframework.com
>
>
>
http://keelframework.org/documentation.shtml
Keelgroup mailing list
[email protected]
http://lists.keelframework.com/listinfo.cgi/keelgroup-keelframework.com