1) Download & install Google protobuf.
2) Create .proto file.
e.g.
3) Generate Java file from proto file. pom.xml file for this
4) Message can be written to HttpServletResponse object.
protected void writeToHttpServletResponse(GeneratedMessage protobufGeneratedMessage) throws IOException {
getHttpServletResponse().setContentType("application/x-protobuf");
protobufGeneratedMessage.writeTo(getHttpServletResponse().getOutputStream());
}
5) Marshall, UnMarshall example
SalesHdbService salesHdbService = salesServiceFactory.getSalesHdbService();
SearchSalesHdbPropertyRequest hdbPropertyRequest = SearchSalesHdbPropertyRequest.parseFrom(getHttpServletRequest().getInputStream());
SearchSalesHdbPropertyResponse hdbPropertyResponse = salesHdbService.getSearchSalesHdbPropertyResponse(hdbPropertyRequest);
2) Create .proto file.
e.g.
import "xyz_options.proto";
package com.example.tutorial;
option java_multiple_files = true;
option java_generate_equals_and_hash = true;
option (VdsFileCmnt) = "This is an example file comment";
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message ZipCode{
required string cityname = 1;
required int32 code=2 ;
}
message PhoneNumber {
option (VdsMsgCmnt) = "PhoneNumber Class Comment";
option (VdsMsgTbl) = "~";
required string number = 1 [ (VdsFldCmnt) = "string number: Field Comment", (VdsFldCol) = "~" ];
optional PhoneType type = 2 [default = HOME, (VdsFldCmnt) = "PhoneType type: Field Comment", (VdsFldCol) = "~"];
repeated int32 phoneId=3; //This case is not covered
}
message Person {
option (VdsMsgTbl) = "~";
required string name = 1 [(VdsFldCol) = "~"];
required int32 id = 2 [(VdsFldCol) = "~"]; // Unique ID number for this person.
optional string email = 3 [(VdsFldCol) = "~"];
repeated PhoneNumber phone = 4 [ (VdsFldTbl) = "~" ];
}
// Our address book file is just one of these.
message AddressBook {
option (VdsMsgTbl) = "~";
repeated Person person = 1 [ (VdsFldTbl) = "~" ];
required ZipCode zipcode= 2; //This case is not covered
}
3) Generate Java file from proto file. pom.xml file for this
4.0.0 realtor realtor_model 0.0.1 jar dtrott http://maven.davidtrott.com/repository realtor_protos http://maven.apache.org UTF-8 junit junit 4.10 com.google.protobuf protobuf-java 2.4.1 org.hibernate.javax.persistence hibernate-jpa-2.0-api 1.0.1.Final org.hibernate hibernate-entitymanager 3.6.7.Final maven-antrun-plugin compile-protoc generate-sources run org.codehaus.mojo build-helper-maven-plugin 1.7 add-source generate-sources add-source target/generated-sources org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.6 1.6 org.eclipse.m2e lifecycle-mapping 1.0.0 org.apache.maven.plugins maven-antrun-plugin [1.3,) run
protected void writeToHttpServletResponse(GeneratedMessage protobufGeneratedMessage) throws IOException {
getHttpServletResponse().setContentType("application/x-protobuf");
protobufGeneratedMessage.writeTo(getHttpServletResponse().getOutputStream());
}
5) Marshall, UnMarshall example
SalesHdbService salesHdbService = salesServiceFactory.getSalesHdbService();
SearchSalesHdbPropertyRequest hdbPropertyRequest = SearchSalesHdbPropertyRequest.parseFrom(getHttpServletRequest().getInputStream());
SearchSalesHdbPropertyResponse hdbPropertyResponse = salesHdbService.getSearchSalesHdbPropertyResponse(hdbPropertyRequest);
No comments:
Post a Comment