Help coderanch get a
new server
by contributing to the fundraiser

Krzysiek Hycnar

Ranch Hand
+ Follow
since Jan 02, 2004
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
In last 30 days
0
Forums and Threads

Recent posts by Krzysiek Hycnar

Hi all,

I've got a weird problem trying to consume a Web Service published by a third party company. The problem occures when the client is trying to parse the response envelope. In case of JAXWS based client instead of a non blank string, null value is returned, and if the JAXRPC client is used I get the following exception:



I managed to fix the problem in the JAXRPC client by manually editing one of the generated classes - I had to replace the originally generated part...



with



Also, as you can see below in the sample response envelope returned by the service the create_scheduleResponse message is defined as: <create_scheduleResponse xmlns="urn:NetBanxDirectDebit"> and that suggests that the above exception is raised because the parser is expecting the response element not to be placed within the urn:NetBanxDirectDebit namespace (and obviously creating the QName manually with the namespace specified fixed the problem).

The wsdl looks like follows (some parts of it have been cut):



Sample request envelope:



and a sample response envelope:



I believe manual editing of the generated stubs is not the way to go, at the same time I admit, I'm a newbie when it commes to Web Services, so my requestion is:

What can be said having the above data? Is there any specific way I need to generate the client stubs, or the wsdl does not quite describe the service itself?

Thank you in advance for any help!
Krzysztof
[ December 08, 2008: Message edited by: Krzysiek Hycnar ]
15 years ago
That's right you can rely only on vendor specific support.

Below you've got an example how to do this with JBoss and PostgreSQL (I've got a link with explanation how to achieve the same with JBoss and Oracle, but it's on another comp, if you need it I can look for it).

What you must do to compile it is to add a com.hicnar.library.Author class which is a simple transfer-object bean (you can infer from the last method how it's built).

Good Luck
Krzysiek

Of course this is possible, I can't exclude it. It's a pitty the exam assessors are not required to justify the scores in each category at least with a single sentence.

Krzysiek
[ June 04, 2006: Message edited by: Krzysiek Hycnar ]
18 years ago
Hi guys,

I passed the SCJD as the subject says a long time ago, you can see it here

The maximum number of points is 400, to pass you need a score of 320. Section Summary: Section Max Actual Points Points

General Con: 100 90
Docmentation: 70 65
OOD: 30 30
GUI: 40 19
Locking: 80 80
Data Store: 40 40
Network Server: 40 30
Total: 400 354

The total score is 354, not so pleased with it, but as some of you can remember I had to appeal (they failed me for not implementing "the 48 hours rule" guess that's why they deduced 10 from Gen Con).
The other deduction that surprises me is the GUI. Althouth I never claimed to be a good GUI designer, the SCJD GUI was reviewed by three of my very critical pales, and the final version of it looked really good to them. You can see some screenshots of my GUI here This was originally part of my userguide, but I removed the text in order not to violate the SUN rules (Andrew if you think it's still a violation, feel free to remove this link from that post).

I'm really happy to get max on OOD, Locking and the Data Store. I developed a side project, that helps to find deadlock conditions in the Data class. It saved my ass twice (that means thanks this, I managed to detect two bugs in my locking solution) It's XML configurable, supports watchdog. Below you've got a sample configuration file. I believe it's pretty self descriptive. I was thinking if you were interested in using this tool in your SCJD project. It was designed with the assumption that your Data class is a singleton, but can be easily adapted to your needs. Drop me a message if this could add a value to your projects, and I will make it downloadable.

Take Care
Krzysiek



[Andrew: Changed tabs to spaces in XML file to reduce displayed width. Changed indent size to two spaces for the same reason. Also means that the blocks line up now (I think).]
[ June 04, 2006: Message edited by: Andrew Monkhouse ]
18 years ago
Guang,

I sent them an email about a week and a half ago, and it's a... total limbo, nothing, null. But you know, Sun is a huge company so the inertia is huge as well. I think my request is probably queued, however I reminded them yesterday tht I've been waiting to see the status of my appeal.

BTW your case is even more interesting than my, since you implemented the 48 hour rule as an option. I'm starting to wonder, what does passing this exam depend on (funny things come to my mind ).

Anyway I'm a pretty patient folk, so no problem I can wait

Good luck with your appeal!!

B,

Guang's example shows something obvious: Implementing the 48 hour rule does not imply that your assignment will not be failed automatically for.. not implementing it.

Take Care
Krzysiek
[ January 27, 2006: Message edited by: Krzysiek Hycnar ]
I know that and I read - see the reference in my previous post and I did no t implement it with that on my mind (I mean, I was absolutely aware they may fail me for that).

The presence/absence of the "48 hour rule" implementation in your assignment is a bit specific.

Basically you can have this or not.

If you have this in your app the assessor may dwell into details - if it's well implemented or not, if he/she likes it or not.

If you don't implement it the assessor has two choices.

1. Autofail you (like in my case) justifying that the application functionality is incomplete.

2. Go on evaluating your assignment (optionally deducting some points from your score).

The criteria that qualify your assignment to be autofailed is clearly defined in your instructions.html - "Where this document uses the word "must" an absolute requirement is being described. If you fail to adhere to such a requirement, your assignment will be failed automatically, and without further evaluation."

Now the "48 hours rule" is defined as follows:

"URLyBird is a broker of discount hotel rooms. They sell accomodations for
business and pleasure travellers at short notice, helping hotels to fill rooms that would otherwise be left empty. They take bookings only within 48 hours of the start of room occupancy."

Can you see the magic word "must" anywhere in this definition (I checked several times and it's always the same, namely I can't)??

As I said, I addressed this in my choices.txt.

Another thing is that there were also many SCJD candidates who passed the exam without implementing the rule and to top it all, they had no points deducted from their final score for that - let me cite Nicholas Cheung:

"I did not implement the 48 hours booking rule, but I am sure that there was no/low mark deduction.

I got 99 in general consideration and 70 for documentation. Thus, I dont think this should be a reason for auto fail."

So if they insist to fail me for that, or even deduct some points, I will ask Sun why they split the candidates into two groups, one of which passes and the other fails because of EXACTLY the same "fault" in their assignments, and what can I do to jump into in the first group??!!

I think the "48 hour rule" (which BTW is underspecified, and its implementation causes lots of confusion) should either be removed from the instructions.html, marked with the word "must", or the evaluation process of the assignments that don't implement it should be somehow unified, so it's clear, fair and does not depend on luck.

Take Care
Krzysiek
[ January 18, 2006: Message edited by: Krzysiek Hycnar ]
I saw the results yesterday, they've been ready since 5 Jan. - just forgot about the whole thing for a while

What really irritates me is that they do not read your choices.txt they do not take lessons from the "history" either. I don't know maybe they think that I'm just gonna buy another voucher and resubmit? There were plenty of "48 hour rule" appeals that ended favourably for the candidates (4 ex. look here). I've addressed this issue in my choices.txt, so I'm not affraid (in other words if they wanna fail me, let them find a better reason).

Don't be nervous, relax, have beer with your friends! Much worse things may happen to us. It's just an exam

Take Care
Krzysiek
Hi all

The assessor failed me because of the subject mentioned "48 hours rule" - despite that I justified the choice in my choices.txt (in short, not implementing it as there's no word "must" around the sentences describing the "infameous" rule).

Of course I appealed! Seems like they learn nothing from the fact that all who appeal on that issue, have their assignments reevaluated, or maybe more and more new unexperienced companies/assessors deal with the assignments on behalf of Sun (it's a known that Sun hires third party companies to evaluate the assignments).

Anyway, keep your fingers crossed!!

Cheers
Krzysiek
[ January 17, 2006: Message edited by: Krzysiek Hycnar ]
Hi,

In general the whole post is about boundary conditions

Firstly, I'm in little doubt if my implementation of findByCriteria is correct. According to the specification:


//Returns an array of record numbers that match the specified
// criteria. Field n in the database file is described by
// criteria[n]. A null value in criteria[n] matches any field
// value. A non-null value in criteria[n] matches any field
// value that begins with criteria[n]. (For example, "Fred"
// matches "Fred" or "Freddy".)



What if criteria[n] = "" - that means an empty string?? Is it supposed to match anything (like a null value), or literally an empty string in the column to which the n index corresponds??

I implemented it in a way that it matches anything (just following recursively the path: if "Fred" matches both "Fred" or "Freddy", than "F" matches anything that starts with "F", so "" matches anything).

What comes next is the searching algorithm.


It must allow the user to search the data for all records, or for records
where the name and/or location fields exactly match values specified by
the user."



What does an empty field in the search criteria mean here, anything or literally an empty string??

If an empty field means anything, the search with the following criteria:

name = "Castle" AND location = "" will return only the records that have "Castle" in the name column, similarly name = "Castle" OR location = "" will return the whole database contents.

On the other hand, if we assume that an empty field means literally an empty field in the database, the:

name = "Castle" AND location = "" will return records that have "Castle" in the "Name" column, and "" (an empty string) in the "Location" column - in case of the provided database file the result set will be empty.
The name = "Castle" OR location = "" in that case will return only the records that have "Castle" in the name column - since in the provided database file there're no entries with an empty location field.


Which of the above is a better approach?? Guess this is a good thing to place in the choices.txt

Take Care
Krzysiek

PS. BTW, Please be sincere, and tell me if I'm getting paranoid - maybe it's not too late
[ December 01, 2005: Message edited by: Krzysiek Hycnar ]
Hi,

I've URLyBird 1.2.1 and there's no such method in the provided data access interface. Can't help you, sorry

Cheers
Krzysiek
18 years ago
Mihai,

What do you mean by isLock metnod?? What would it be expected to do??

Krzysiek
18 years ago
Congratulations Dan

Have one question anyway...

How about shutting down your server. Did you do anything to keep the database file consistent 4 ex. loocked the whole database before shutdown??

Take Care
Krzysiek
[ November 28, 2005: Message edited by: Krzysiek Hycnar ]
18 years ago
Haha nice shot !! It's not a good practice to hardcode them, but I bet most of us do it

Krzysiek
Hi,

Ok, this is my fault I was not specific enough. By externalizing strings I mean what Andrew said - putting the strings that are normally hardcoded into a bundle that is located in one place and it's easily replaceable with another set. This is just a temptation, and I know I won't be given extra score for that, so I think this is one of this kind of temptations I will resist

BTW. I thought "externalizing strings" is quite common notion, but hmmm... maybe I'm to much tied to the eclipse IDE that provides that facility.

Take Care
Krzysiek