I/O / Streams :: Deserialization Of Class Object Received Within XML Message
Apr 5, 2014
I receive an XML message (over an HttpURLConnection) that contains a serialized Java object. This is the received XML message:
<?xml version="1.0" encoding="UTF-16"?><Olive><Responses><Character>
aced0005737200116f626a656374732e4368617261637465720000
0000000000000200034c00056974656d737400154c6a6176612f757
[Code] .....
What I want to do is to deserialize the Java object which is contained within the <Character> element. (The first four characters "aced" reveals that we are dealing with serialized content. So far so good.) I'm using this code to grab the characters within <Character> and deserialize them into a Java object:
Node characterElement = responsesElementChildren.item(0); // <Character>
String characterSerialized = characterElement.getTextContent();
ByteArrayInputStream bais = new ByteArrayInputStream( characterSerialized.getBytes() );
ObjectInputStream ins = new ObjectInputStream( bais );
objects.Character retrievedCharacter = (objects.Character) ins.readObject();
However, the above operation fails and I get this exception:
java.io.StreamCorruptedException: invalid stream header: 61636564
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at network.requests.RequestRetrieveCharacter.addResponse(RequestRetrieveCharacter.java:99)
at network.GameServer.ask(GameServer.java:151)
at Client.main(Client.java:43)
I cannot tell if the received serialized data is okay or not, so I really don't know if the problem is here in the deserialization or actually in the serialization (on the sending side where the Java object is serialized and packed into an XML message).
View Replies
ADVERTISEMENT
Mar 31, 2015
I already done a lot of work(user lists, server logging, private messages), but im there is few thing i still dont know how to really implement and, of course my current program is far from beign decent, so i decided to start asking questions(so far i was just experimenting just using knowledge from book and some info found on Java API).
1. How can i make JTextField to scroll down each time new message received and log is already full? i mean visible part of it, so you don't need to scroll it yourself...
2. Why sequencer doesn't play MIDI if it is launched not by main thread?
3. What is good way to do user list with avatars? atm, i'm using regular JList and listening to selected values to open dialogs.
4. What is a good ways to implement sounds in application, other than MIDI? i know that i should just google it, but anyway.
You can check my source code for it by link. Chat client:URL...
View Replies
View Related
Oct 23, 2013
I have an stand alone client to use a remote ejb with some methods. All works fine, but when I pass an entity class as parameter from the stand alone client to the remote ejb, the entity class is received as null.
View Replies
View Related
Dec 4, 2014
I have upgraded to myeclipse 10.7 ,java "com.sun.java.jdk.win32.x86_64_1.6.0.013" and Struts 2.1 (Right now using Struts 1.1 support) from myeclipse 10.7 ,java 1.4 and Struts 1.1. I installed jasperassistant 2.4.2 plug-in using jasperReports 2.0.2 (My old report files were using same version).
All files compile successfully in new environment but when I export I get following error Export to PDF
a. Reports having no crosstab
"Java.lang.NullPointerException"
b. Reports reports having crosstab
"Error loading object from InputStream"
java.io.InvalidClassException: net.sf.jasperreports.crosstabs.base.JRBaseCrosstabGroup;
Export to EXCEL
a. Reports having no crosstab
java.lang.NullPointerException
b.Reports reports having crosstab
java.lang.NullPointerException
All files are at correct location....
View Replies
View Related
Feb 15, 2015
I have a pretty large Hashmap (~250MB). Creating it takes about 50-55 seconds, so I decided to serialize it and save it to a file. Reading from the file takes about 16-17 seconds now.
The only problem is that lookups seems to be slower this way. I always thought that the hashmap is read from the file into the memory, so the performance should be the same compared to the case when I create the hashmap myself, right? Here is the code I am using to read the hashmap into a file:
File file = new File("omaha.ser");
FileInputStream f = new FileInputStream(file);
ObjectInputStream s = new ObjectInputStream(new BufferedInputStream(f));
omahaMap = (HashMap<Long, Integer>) s.readObject();
s.close();
300 million lookups take about 3.1 seconds when I create the hashmap myself, and about 8.5 seconds when I read the hashmap from file.
View Replies
View Related
Jul 16, 2014
Say you have a bunch of animals, `Rat` `Cat` `Dog` and `Fish`, and you want to serialize/deserialize these animals. Each has its own `serialize()` method. That all works fine and good, if you want to save your Cat to a file, you call `Cat.serialize()` and then you write it to a file.
But what about deserializing? Sure, you could save an extra bit of data that states the type of animal, then use reflection to get a static method (say, `deserialize(String serialized)`) and then invoke it. But that's not safe. What if someone creates a new animal 'Rabbit' and doesn't include a `deserialize(String serialized)` method? Sure, you could then just catch the error and ignore the issue, but that seems unclean and bad practice.
You could also create an enum. Each item in the enum must have a `deserialize(String serialized)` method, and the aforementioned piece of data that states the type references the name of its enum item. Problem is, not very adaptable. Enums don't allow for other animals to be added at runtime.
The way I have been solving this issue is mapping the name of the objects against a deserializer object. Basically each animal would have to 'register' itself by entering it's name and deserializer (implements `Deserializer` interface) object into a HashMap. The deserializer object can then be retrieved via the name of the animal at a later time.
My question is, what is the best method to go about implementing deserialization? Also, is the method I have been using good/bad practice?
Finally, if you are wondering why animals would be added at runtime, the reason is because animals might be added by other non accessible parts of the program, or by things such as plugins.
Example of the method I have been using is below.
Animal Interface
Java Code:
public class Animal{
public String serialize();
} mh_sh_highlight_all('java'); Deserializer Interface
[code]....
And when you needed to deserialize:
Java Code:
Deserializer d=AnimalSpecies.getSpeciesDeserializer(serialized.split(AnimalSpecies.DELIMITER)[0]);
if (d!=null){
d.deserialize(serialized);
} mh_sh_highlight_all('java');
What I mean by this is that any serialized Animal must have a way of identifying which animal it is so that it's deserializer can be accessed. This can be worked around by implementing a wrapper that adds this information directly before it is written to a file, and removes it directly before deserialization.
Why not use built in serialization/deserialization? I would like the serialized data to be readable and easily editable.
View Replies
View Related
Dec 13, 2014
Assuming that we have two classes B and C which inherit from class A. What is the best way to pass a parameter from an object of class B to an object of class C by the use of class A without using static variable and without defining a get function in B?
View Replies
View Related
Oct 30, 2014
I will detailedly explain my requirement below,. I am going to automate a manual process. I will be reading multiple CSV files from a remote location using java.There are five formats of input files are expected, each differs in their header structure. For example, Type 1 - Number, ID, Name, Phone, Address...Type 2 - Number, GID, Employee Name, Address1, Address2, Phone number and so the other three types are also differs.
The precondition is not all the files are expected for a particular run. I need to read these files one by one, validate it, log the validation error and i have to consolidate all the correct data from all the files together in a standard output format, in a single file The standard output format will be like,Number, Name, ID, Address
I need to have the above data alone in the output file and rest of the data can be ignored.What i have tried is as follows, I have created 5 bean classes representing each type's header. I just read an input, identify its type and parsed it. I parsed line by line.
public String[] parseCSV(String inputLine){
try {
String[] fields;
Pattern p =
Pattern.compile(",(?=([^"]*"[^"]*")*(?![^"]*"))");
fields = p.split(inputLine);
/*for ( int i = 0; i < fields.length; i++ ) {
System.out.println(fields[i]);
}*/
[code]...
I have validated as per the validation rules and i appended each line elements into an object. I have added all the objects in to a MAP collection. Likewise, i have created 5 beans and did the same.But, what is the change needed now is,. All the headers in all the five types of rosters are configurable items. hence, i have to change my bean classes everytime when the header structures are changed.
We have to create one single utility, which is configurable for all the five types of input files. To be very clear, if type 1 input comes with 8 columns and type 3 comes with 12 columns, the utility is able to parse it.
We are going to have a table which has the data regarding the header structure of all the five types of inputs alone. Once i read a file and identify its type, i will hit the database and read the header structure of that particular type and its column count. I will match the column count with the input file's header count and i will have to proceed creating a bean class on runtime depending upon the header structure read now. I will validate and consolidate as i did above. The requirement is, Runtime configuration of bean class, depending upon the type of input.
View Replies
View Related
Sep 28, 2014
The problem is the result of encoded message can't not restore to the original message by the decoder. Here are my three class's code
SecureMsgMain:
package securemsg.core;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import securemsg.database.*;
public class SecureMsgMain {
[Code] .....
View Replies
View Related
Sep 9, 2014
I would like to know the details about how a server handles a multipart request. I know that a webserver comprises of a HTTP adapter(which is responsible for receiving http requests and sending http responses) and a container(which is responsible for handling dynamic requests).
So, when a client sends a request, the HTTP adapter receives it. Then transfers the request to the container if the http adapter cannot handle it(jsps, servlets for example).
Suppose, a client sends a multipart request which has an avi file of size upto 100mb. For example, lets assume that the client takes 5 minutes to upload the file.
Lets also assume that my application is only interested in flv files. Is there any way to stop/terminate the multipart request before the file is transferred to the server? So that the client's time will not be wasted?
I think that the HTTP adapter will transfer the request to the container only after receiving the entire request, i.e. the servlet will be called only after the file is transferred to the server from client. Is it right?
If its right then there is no easy way to terminate the multipart request unless the entire file is transferred to the server. Is this right?
View Replies
View Related
Apr 8, 2014
Suppose you have a generic Dog class of the pet type that implements a DogInterface of the pet type. What is the difference between;
DogInterface<pet> Rex = new Dog<pet>();
and
Dog<pet> Tye = new Dog<pet>();
In what situations might you want to use Rex instead of Tye?
View Replies
View Related
Mar 24, 2014
"You might wonder what happens when a static synchronized method is invoked, since a static method is associated with a class, not an object. In this case, the thread acquires the intrinsic lock for the Class object associated with the class. "What is a Class object associated with a class. Google search rather finds material about the Object class.
View Replies
View Related
Feb 4, 2015
I want to know is there any way we can call parent class method using child class object without using super keyword in class B in the following program like we can do in c++ by using scoop resolution operator
class A{
public void hello(){
System.out.println("hello");
}
}
class B extends A{
public void hello(){
//super.hello();
System.out.println("hello1");
[code]....
View Replies
View Related
Aug 28, 2014
can we pass private final class object to another class constructor?
View Replies
View Related
Apr 22, 2015
How to create object for "class B" and call the "function_B" from other different class D where class D has no connection with class A? Here is my program.
public class A(){
void print(){}
}
class B{
void function_B(){}
}
class C{
void function_C(){}
}
Here, A, B, C are in the same package. But class D is in different package.
View Replies
View Related
Nov 16, 2014
I am a beginner here at JAVA and I am trying to program a Gratuity Calculator using both interface class and object class but it keeps on compiling with errors saying "cannot find symbol".I tried everything to fix it but it just keeps on stating symbol.
[CODE]
public class GratuityCalculator extends JFrame
{
/* declarations */
// color objects
Color black = new Color(0, 0, 0);
Color white = new Color(255, 255, 255);
Color light_gray = new Color(192, 192, 192);
[code]....
View Replies
View Related
Jun 10, 2014
Design a class named Person and its two subclasses named Student and Employee. Make Faculty and Staff subclasses of Employee. There is also a MyDate class as explained below. A person has a name, address, phone number, and email address. A student has a status (freshman, sophomore, junior, or senior). Define the status as an integer which can have the value 0 (for "Freshman"),
1 (for "Sophomore"),
2 (for "Junior"), and
3 (for "Senior"),
but don't allow the status to be set to any other values. An employee has an office, salary, and dateHired. The dateHired is a MyDate field, which contains the fields: year, month, and day. The MyDate class does not explicitly inherit from any class, and it should have a no-arg constructor that sets the year, month, and day to the current year, month, and day. The MyDate class should also have a three-argument constructor that gets three int arguments for the year, month and day to set the year, month and day.
A faculty member has office hours and a rank. Define the rank as a String (for values like "Professor" or "Instructor"). A staff member has a title, which is also a String. Use data types for the fields as specified, or where one is not specified, use a data type that is appropriate for the particular field. Write a test program called TestEveryone.java that creates a Person, Student, Employee, Faculty, and Staff object, and invoke their toString() method (you don't need to call the objects' toString() method explicitly).
Note: Your MyDate.java class is the object class that your dateHired field is created from in the Employee.java class.
Do not use the Person, Employee or Faculty classes defined on pages 383 and 384 of the book. Create new ones.Here is the code I have so far concerning the employee and MyDate.
public class Employee extends Person {
private String office;
private double salary;
//private MyDate dateHired;
//7 argument constructor for employee
public Employee(String name, String phoneNumber, String email, String address, String office, double salary /*MyDate dateHired*/) {
super(name, phoneNumber, email, address);
[code]....
View Replies
View Related
May 20, 2015
In the process of creating a new class, I need to move my main method from the class SaveDate to the class DynamicTest. Below I have listed the code of both classes.The objective is to be able to run my program from the DynamicTest Class. I need understanding the process of moving my main method to a different class and creating an Object of a class and calling its method.
public class SaveData {
private static final Map<String, Object> myCachedTreeMap = new TreeMap<String, Object>();
public static final List<String> getLines(final String resourceParam, final Charset charset) throws IOException{
System.out.println("Please get: "+resourceParam);
if (myCachedTreeMap.containsKey(resourceParam) ) {
// Use the cached file, to prevent an additional read.
[Code] ......
View Replies
View Related
Sep 22, 2014
I have a value object class and it has the below member
XMLDocument request = null;
Should I instantiate it in the VO class as
XMLDocument request = new XMLDocument();
or leave it null and let the calling program instantiate it?
What's the proper way to do it for Value Object classes in java ?
View Replies
View Related
Feb 4, 2014
I'm preparing for an exam in a course focusing on algorithms, code:
Java Code:
protected static class Node<E> {
public E data;
public Node<E> left;
public Node<E> right;
[code]...
Are they objects of their own class?
View Replies
View Related
Jan 16, 2014
We know that all classes in Java extend the Object class. But methods in Object class are declared as public.I think if they were declared as protected, then also there wont have been any issue. So, what is the reason behind making them as public?
View Replies
View Related
Jul 12, 2014
I've been referencing my text and a few other sites to assist in building this class...and I'm still uncertain of the purpose of a few of the methds: next(), hasNext().
Also, I have not found a clear explanation of the following code example: tail.next = tail; There are several instances of this in the code below....I'm just not sure exactly how this assigns the value to the next object in the other class..?? ??
public class MySinglyLinkedList<T> implements SinglyLinkedList<T>{
protected NodeList<T> head, tail, current, newNode;
String name;
int size = 0;
public MySinglyLinkedList(){
head = null;
tail = null;
[Code]...
View Replies
View Related
Jan 29, 2014
I have finished a Java 101 class but the most we did was create a gui for a timer program. I figure I need more training and every book I pick up wants to teach me hello world and the difference between a class and object again.
View Replies
View Related
May 2, 2014
I am trying to get an object to display twice from a class in an applet.
Java Code:
if (label == 4) {
game.stop();
timer.start();
result.setText(" You Have Destroyed the World");
marFoundDisplay.setText("Martian: " + String.valueOf(mCount));
jupFoundDisplay.setText("Jupiterian: " + String.valueOf(jCount));
highScoreDisplay.setText("HighScore : " + String.valueOf(HighScore));
j.draw(g, 350, 150);
j.draw(g, 350, 150); mh_sh_highlight_all('java');
Obviously calling it twice doesn't get the desired effect, I'm ultimately trying to get them to be side by side in the middle of the applet, but clearly what I've done won't achieve that.Can you provide me an example that would allow me to display the code below to have the item be displayed twice side by side?
Java Code:
j.draw(g, 350, 150); mh_sh_highlight_all('java');
View Replies
View Related
Nov 1, 2005
I don't know why class Object have two PROTECTED method -- clone() and finalize(). And in JUnit's source code, I notice that kent write :public class AClass extends Object {}I really don't understand what diffrient frompublic class AClass {}
View Replies
View Related
Oct 27, 2014
I have a class for employees. This class has basic information for the employee but no real pay information. And 2 subclasses, one for employee's paid for hourly rates and one for those paid a yearly salary. Each subclass has their own pay() method, that calculates and returns their pay and extra fields relative to calculate that.
I'm just curious, if I do this and create an object for an hourly paid employee like so:
Object hourly1 = new HourlyEmployeeWilson("John Doe", "123 Tech Street",361961,"Human Resources", 0,12.50,50);
How can I utilize that classes public method of pay() to gather this instance (or hourly paid employee)'s pay? I've tried doing so via:
System.out.println(hourly1.pay());
But I get
DriverPayWilson.java:9: error: cannot find symbol
System.out.println(hourly1.pay());
^
symbol: method pay()
location: variable hourly1 of type Object
1 error
View Replies
View Related