Comments (5)
能否在客户端 用 writeTo方法测试一下,还有你使用的版本是?
OutputStream out = resp.getOutputStream();
codec.writeTo(obj, CodedOutputStream.newInstance(out));
from jprotobuf.
1.7.9
from jprotobuf.
public class UserJProtoBufProtoClass {
@Protobuf(fieldType = FieldType.INT64, order = 1, required = false)
public Long id;
@Protobuf(fieldType = FieldType.STRING, order = 2, required = false)
public String name;
@Protobuf(fieldType = FieldType.OBJECT, order = 4)
public PhoneNumberJProtoBufProtoClass phone;
public static class PhoneNumberJProtoBufProtoClass {
@Protobuf(fieldType = FieldType.STRING, order = 1, required = true)
public String number;
}
}
public static void main(String[] args) throws IOException {
UserJProtoBufProtoClass udbp = new UserJProtoBufProtoClass();
udbp.id = System.currentTimeMillis();
udbp.name = "lisi";
Codec<UserJProtoBufProtoClass> codec = ProtobufProxy.create(UserJProtoBufProtoClass.class);
ByteArrayOutputStream out = new ByteArrayOutputStream();
//byte[] bytes = codec.encode(udbp);
//out.write(bytes);
codec.writeTo(udbp, CodedOutputStream.newInstance(out));
UserJProtoBufProtoClass tem =codec.decode(out.toByteArray());
System.out.println(Json.toJson(tem.id));
}
确实有问题
from jprotobuf.
经测试,代码没有问题,应该你的使用API有问题
google的 protocol buffer 代码 CodedOutputStream.newInstance(out) 是不会自动回写到 out对象中的,所以你需对CodedOutputStream进行一下手工 flush. 代码如下:
OutputStream os = new ByteArrayOutputStream();
CodedOutputStream newInstance = CodedOutputStream.newInstance(os);
codec.writeTo(newPojo, newInstance);
newInstance.flush();
System.out.println(os.toString());
from jprotobuf.
嗯 感谢
from jprotobuf.
Related Issues (20)
- 如何自定义 生成proto文件的package 名称?
- protobuf-java 可否打成 shade 包? HOT 2
- ProtobufProxy.create 在高并发的情况下会Block线程 HOT 3
- 父类与子类字段序列化顺序错误 HOT 2
- protobuf-java3.9.2有漏洞提示 HOT 1
- jprotobuf嵌套对象,多文件导出,嵌套对象定义重复 HOT 3
- pojo中类型为short的无法进行创建proto代理 HOT 3
- java.lang.IllegalArgumentException: 无效的源发行版: 1.8
- 这里public的静态变量和set方法冲突
- 预编译插件发生错误 HOT 2
- java21中无法使用预编译,且打成jar包后无法运行 HOT 7
- 预编译插件在复杂对象中可能编译出错 HOT 7
- List<Date>类型字段预编译报错 HOT 2
- 预编译插件,一个实体被多个实体依赖时预编译中断 HOT 5
- java转.proto pojo的注释不会带到生成的.proto中
- 序列化在开发环境可以正常使用,但打成 jar 包运行后,序列化时会报错 HOT 6
- java21,springBoot3.2 打 jar 后使用异常
- 配置outputDirectory参数不生效,没有移动编译后的代码到outputDirectory中
- 预编译报错,JDK版本1.8 HOT 1
- google protobuf-java jar 是否可以升级到最新版本4.27.1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jprotobuf.