我找不到任何如何使用JAXWS从wsdl从服务器骨架(java pojo)创建Web服务的地方.我看到的唯一教程是在NetBeans中使用自动向导,在eclipse中使用axis2.有人可以给我一些关于如何从给定的wsdl生成服务器端类的提示吗?
谢谢
UPADATE:
我只需要:
wsimport.bat -Xendorsed SOAP.WSDL
,它会创建工件.但是现在如何在服务器中实现它?
以下是我的 pojo :
package anto.com.poc;
public class VerifyPaymentRO {
private String mihpayid;
private String request_id;
private String bank_ref_num;
private String amt;
private String disc;
private String mode;
private String PG_TYPE;
private String card_no;
private String name_on_card;
private String udf2;
private String addedon;
private String status;
private String unmappedstatus;
private String Merchant_UTR;
private String Settled_At;
public String getMihpayid() {
return mihpayid;
}
public void setMihpayid(String mihpayid) {
this.mihpayid = mihpayid;
}
public String getRequest_id() {
return request_id;
}
public void setRequest_id(String …Run Code Online (Sandbox Code Playgroud) 我在将JSON响应与自定义类的arraylist映射时遇到麻烦。
问题是,即使我在JSONResponse类中将其设置为ArrayList,也无法识别JSON响应中的“ userswithdistance”字段。错误是:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "userswithdistance" (class com.az.d.classes.models.JSONResponse), not marked as ignorable (4 known properties: "success", "usersWithDistance", "action", "error"])
Run Code Online (Sandbox Code Playgroud)
这是JSON响应
{
"action": "get_users",
"success": 1,
"error": 0,
"userswithdistance": [
{
"usr_id": "4",
"distance": 9896.348
},
{
"usr_id": "5",
"distance": 11536.063
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是JSONResponse类,用于包装JSON响应。
public class JSONResponse {
private String _action;
private int _success;
private int _error;
private ArrayList<UsersWithDistance> _userswithdistance;
public String getAction() { return _action; }
public int getSuccess() { return _success; }
public int getError() { return …Run Code Online (Sandbox Code Playgroud) 是否需要在所有POJO类中添加toString()?
这是一个非常基本的问题,但我担心在每个POJO课程中编写一段代码.
我已经关注了很多java源代码,我在那些POJO类中发现了一些常见的东西 -
@Override
public String toString() {
return StringUtil.toDetailString(this);
}
Run Code Online (Sandbox Code Playgroud)
是序列化还是有助于提高性能还是其他什么?
爪哇 8
我有一个 POJO 类:
class User {
private String name;
private String password;
//... Getters / Setters ...
}
Run Code Online (Sandbox Code Playgroud)
我将用作实体类。
在 getter/setter for 中password,我想添加解密/加密逻辑。
public String getPassword() {
return EncryptionFactory.decryption(password);
}
public void setPassword(String password) {
this.password = EncryptionFactory.encryption(password);
}
Run Code Online (Sandbox Code Playgroud)
EncryptionFactory是一个加密/解密 a 的实用程序类String。
根据通用 Java 编码指南,如果我添加更改密码的逻辑,它是否破坏了设计或设计不良?
在使用它时,我从我的教授那里得到了糟糕的设计反馈。
下面是 POJO:
public class TransferObjectListTO {
private List<A> transferList;
public List<A> getTransferList() {
return transferList;
}
public void setList(List<A> transferList) {
this.transferList= transferList;
}
public List<A> getList() {
return getTransferList();
}
public void incrementList(List<A> transferList) {
getTransferList().addAll(transferList);
}
}
Run Code Online (Sandbox Code Playgroud)
它有一种加法器方法 -
增量列表
以及复制到 getter 方法 -
获取列表
Mapstruct 生成的代码具有以下不必要的内容,其中添加了列表,再次添加了源类型:
if ( targetTypeTransferObjectListTO.getList() != null ) {
List sourceTypeList = sourceTypeTransferObjectListTO.getList();
if ( sourceTypeList != null ) {
targetTypeTransferObjectListTO.getList().addAll( sourceTypeList );
}
}
Run Code Online (Sandbox Code Playgroud)
incrementList() and getList()我们无法删除上面 POJO 中的这些方法,因为它在很多地方都使用了。现在,当mapstruct生成映射的实现时,我们如何才能忽略这些方法呢?
我正在使用Spring Boot,我在我的控制器中有一个这样定义的方法
@PostMapping("/update)
public void update(@RequestBody User user) {
...
}
Run Code Online (Sandbox Code Playgroud)
但是在我的客户请求(例如前端或邮递员)中,我有这样的事情:
{
"firstName" : "John",
"lastName" : "Doe",
"id" : 1234,
"metaInfoId" : "5457sdg26sg4636"
}
Run Code Online (Sandbox Code Playgroud)
事情是我的用户pojo只有firstName,id并且lastName实例字段在其中.但是在我的请求中我have to send metaInfoId也有其他一些需求.那么如何在上面的控制器方法中检索或分离metaInfoId和User建模呢?
我是否必须创建另一个调用的模型类UserModelRequest并将所有User字段与字段一起添加metaInfoId然后使用@RequestBody?有没有办法简单地metaInfoId从请求中删除,然后采取其他一切并将其转储到Userpojo?例如,您可以在nodejs中轻松完成此操作(只需拼接您的对象并获取所需内容).
那么有没有办法在java spring中完成它而不必创建另一个模型类?
新手问题。我有一个原始的豆从数据库逐行
public class DataBean {
private Integer employeeId;
private String org;
private String comments;
// + Constructors, getters/setters
}
Run Code Online (Sandbox Code Playgroud)
我需要将其映射到具有多个Org的另一个Bean,这些组织按Employee ID分组到一个列表中。雇员ID的唯一组织可以是多个;“评论”字段必定是相同的。
public class CustomDataBean {
private Integer employeeId;
private List<String> orgs;
private String comments;
// + Constructors, getters/setters
}
Run Code Online (Sandbox Code Playgroud)
努力入门。想到groupingBy了以下内容,但返回了Map,而我没有建立子列表。
Map<Integer, List<String>> temp = origData.stream().collect(
Collectors.groupingBy(OrigBean::getEmployeeId,
/* 2nd param? */ .. ))
Run Code Online (Sandbox Code Playgroud)
我的目标是转变List<CustomDataBean>。
考虑如下 JSON:
{"randomName1": {
"knownfield1": "a",
"knownfield2": [1,3,2,4]
},
"randomName2": {
"knownfield1": "0.20",
"knownfield2": [1,2,3,4]
}
Run Code Online (Sandbox Code Playgroud)
}
public class PojoForJson {
HashMap<String, PojoType1> map = new HashMap<>();
@JsonAnyGetter
public HashMap<String , PojoType1> pojoType1Getter(){
return map;
}
@JsonAnySetter
public void pojoType1Setter(String key, PojoType1 value){
map.put(key,value);
}
Run Code Online (Sandbox Code Playgroud)
}
如果我有
PojoForJson pojo = new ObjectMapper().readValue(jsonInput,PojoForJson.class);
Run Code Online (Sandbox Code Playgroud)
然后我尝试将其写回 Json,我必须调用并且它工作正常。
new ObjectMapper().writeValueAsString(pojo.getMap());
Run Code Online (Sandbox Code Playgroud)
现在,这是另一个 POJO 中的字段,我们将其称为 PojoMain:
@Builder
public class PojoMain {
@Getter @Setter
private Type1 t1;
@Getter @Setter
private Type2 t2;
@Getter @Setter @JsonUnwrapped
private PojoForMap …Run Code Online (Sandbox Code Playgroud) 我需要编辑 POJO 中“现有字段”的名称,而不是添加“extra_field”。是否可以使用下面参考的链接方法?
请注意,我不想使用@JsonProperty注释。
要求是,我有一个 POJO,并且希望每次都使用不同的字段名称,而不需要更改 POJO。例如,我c_id在 POJO 中有一个字段,有时需要写为 as cust_id,有时则需要写为my_id。
另请注意,我无法更改 POJO 的实现,因为它已经在多个模块中使用并且具有通用实现。
POJO 示例:
class MyPojo {
String id;
// getter and setters
}
Run Code Online (Sandbox Code Playgroud)
预期输出如下:(字段名称可以更改)