Hi,
I'm new to B4J so this is probably a really simple question.
I'm writing my first B4J Server process to with handlers to accept requests from by B4A app and send back lists of records which are available in a list of class objects. The class with its public members are shared in both my client and server apps.
I'm hoping to simply serialize it in the server and send it back to the app to deserialize.
So in my server handler class handle function, I've created an instance of the B4XSerializator and called the ConvertObjectToBytes function.
If I simply pass a string type to the ConvertObjectToBytes if works.
If I pass my class object instance to the it I get an error "Cannot serialize object"
Both are declared in the Class Globals
The class only has some basic public members of primitive types declared in it.
Any ideas why?
-------------
I'm new to B4J so this is probably a really simple question.
I'm writing my first B4J Server process to with handlers to accept requests from by B4A app and send back lists of records which are available in a list of class objects. The class with its public members are shared in both my client and server apps.
I'm hoping to simply serialize it in the server and send it back to the app to deserialize.
So in my server handler class handle function, I've created an instance of the B4XSerializator and called the ConvertObjectToBytes function.
If I simply pass a string type to the ConvertObjectToBytes if works.
If I pass my class object instance to the it I get an error "Cannot serialize object"
Both are declared in the Class Globals
The class only has some basic public members of primitive types declared in it.
Any ideas why?
B4X:
Sub Class_Globals
Private mreq As ServletRequest 'ignore
Private mresp As ServletResponse 'ignore
Public lstTasks As List
Public strSample As String
Public obj As clsIncident
End Sub
Public Sub Initialize
End Sub
Sub Handle(req As ServletRequest, resp As ServletResponse)
Private serializer As B4XSerializator
mreq = req
mresp = resp
lstTasks = mDatabase.GetTaskList()
lstTasks.Initialize
Dim bBytes() As Byte
obj.Initialize(1,"123","123")
strSample = "TEST"
'This works
bBytes = serializer.ConvertObjectToBytes(a)
'This throws the error
bBytes = serializer.ConvertObjectToBytes(obj)
-------------
B4X:
Sub Class_Globals
Public ID As Long
Public OpenedTime As Long
Public IncidentStatusID As Long
Public AcceptedTime As Long
Public ExpectedOnSiteTime As Long
Public OnSiteTime As Long
Public ExpectedOffSiteTime As Long
Public OffSiteTime As Long
Public IncidentTypeID As Long
Public Post As String
Public PostAddress As String
Public ClosedTime As Long
Public DocketNumber As String
Public KeypointsClocked As Boolean
Public IncidentDescription As String
Public Observations As String
Public ActionTaken As String
Public ZonesReportedByMonitoringStation As String
Public ReasonForActivation As String
Public FurtherActionRequired As Boolean
Public FurtherAction As String
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize (parID As Long, parPostName As String, parPostAddress As String)
ID = parID
Post = parPostName
PostAddress = parPostAddress
End Sub