File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Developer Certification (SCJD/OCMJD) and the fly likes Help Needed for SCJD Assignment Deliverable Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Developer Certification (SCJD/OCMJD)
Bookmark "Help Needed for SCJD Assignment Deliverable" Watch "Help Needed for SCJD Assignment Deliverable" New topic
Author

Help Needed for SCJD Assignment Deliverable

charlie zhang
Greenhorn

Joined: Dec 05, 2004
Posts: 3
I was assigned to develop URLyBird hotel reservation system. The deliverable file I submitted named scjda-29796XXXX.jar. Below is the structure of this archive file.

code // this directory contains assignment source code
bin // this directory contains compiled classes from the code dir
dist // this directory contain the server.jar and client.jar, and
suncertify.properties
docs // this directory has the document and userguide
db-1x2.db // this is the database file
version.txt // JVM version
build.xml // ant build file
runme.jar // archives all the compiled classes located in the bin dir
config // this directory has files used only by ant build file

The Deliverables Execution requirement(instructions.html) says:
When you submit your assignment, each part (client and server) must be executable using a command of this exact form:
java -jar <path_and_filename> [<mode>]

I created server.jar and client.jar in the <dist> directory, and they could be run as
java -jar server.jar
java -jar client.jar

The Deliverables Packaging requirement says:

All elements of your submission must be packaged in a single JAR file. The JAR file must have the following layout and contents in its root:

1. The executable JAR containing the programs. This must be called runme.jar.

I am not exactly sure what this runme.jar is used for because the Deliverables Execution uses server.jar and client.jar which are located in the <dist> directory. I included all the compiled classes built from code directory into runme.jar, the system user could use this JAR file to launch the server and client by issuing commands(if the system user does not want to use server.jar and client.jar)

java suncertify.gui.CSRGUI [ network|alone]
java suncertify.server.CSRServerImpl


2. The original, unchanged database file that was supplied to you. Note that you must keep a copy of the original database file supplied to you, and this must be the file you submit. The marking process will expect the exact same data without any changes.

This is included in my scjda-29796XXXX.jar

3. A directory called code, containing all the source code and related parts of your project. You must create subdirectories within this to reflect your package structure and distribute your source files within those directories.

This is included in my scjda-29796XXXX.jar

4. A file called version.txt. This must contain pure ASCII (not a word processor format) indicating the exact version of JDK you used, and the host platform you worked on.

This is included in my scjda-29796XXXX.jar

5. A directory called docs.

This is included in my scjda-29796XXXX.jar

However, my submission failed. Below is the accessor comments I got from http://www.certmanager.net/sun_assignment/
Assessor Comments: Submission fails because it does not meet the exam specification. The requirements call for the applications to be contained in and invoked from a single file called runme.jar. This submission does not meet that requirement as defined in the "Deliverables" section of the Instructions.


I don't know what is wrong with my assignment deliverables(Maybe my understanding of the runme.jar is wrong). I would be greatly appreciated if you could help me in this regard.

Thanks,

Charlie
Dieskun Koper
Ranch Hand

Joined: Aug 15, 2004
Posts: 85
Hi Charlie,

I think you interpreted the part about runme.jar differently from everybody else. But that does not mean your interpretation is wrong!

I interpreted as follows:
<my interpretation>
Your application should run with the following command:

java -jar runme.jar [start_mode_flag]

So you should have one main class (same for server and client) that invokes your client or server, depending on the argument.
To be able to start your application from a jar like that, this main class will need to be in the runme.jar's manifest.mf file.
</my interpretation>

You have a client.jar and server.jar to run the application. I cannot find anything in the specification saying that that is not allowed. I just think your accessor never thought of that (nor did I).

You'd better mail Sun and explain that your interpretation does not break any requirements: You did include a JAR containing the programs. And this JAR can be used to start the programs. You just saw that as an alternative way to start your programs, and the way you intend your programs to be started obeys the instructions.

He/She probably assumes the program has to be started as I wrote above. You'll have to explain (and defend) that this is only an interpretation, not a requirement, and that your interpretation is also valid.

The only thing against you I could find is in the following:
"The executable JAR containing the programs. This must be called runme.jar."
Is your runme.jar executable?
Your accessor will interpret this as, whether it runs if you type 'java -jar runme.jar'. I suppose you can say you interpreted it as 'java -classpath runme.jar suncertify.server.CSRServerImpl'. Unless "executable" is given a special meaning for JAR files in the Java Specification, you can interpret it any way you want.

I passed my SCJD last week after an appeal that took several weeks.
It was a frustrating period as my arguments were first answered with a short "your accessor does not agree", but don't give up!

Good luck,
Dies (SCJD after appeal)
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Help Needed for SCJD Assignment Deliverable