对于想了解JAXBException尝试从Web服务返回包含不同类型值的Map的读者,本文将是一篇不可错过的文章,并且为您提供关于2021-11-21:map[i][j]==0,代表(i,j)是海洋,
对于想了解JAXBException 尝试从 Web 服务返回包含不同类型值的 Map的读者,本文将是一篇不可错过的文章,并且为您提供关于2021-11-21:map [i][j] == 0,代表 (i,j) 是海洋,渡过的话代价是 2, map [i][j] == 1,代表 (i,j) 是陆地,渡过的话代价是 1, map [i][j] == 2,代表、2022-08-23:以下 go 语言代码输出什么?A:map [baz:2 foo:0];B:map [bar:1 baz:2];C:map [baz:2];D:不确定。 package main impo、Android Studio Unable to load class ''javax.xml.bind.JAXBException''.、Android Studio 编译报错 Java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException的有价值信息。
本文目录一览:- JAXBException 尝试从 Web 服务返回包含不同类型值的 Map
- 2021-11-21:map [i][j] == 0,代表 (i,j) 是海洋,渡过的话代价是 2, map [i][j] == 1,代表 (i,j) 是陆地,渡过的话代价是 1, map [i][j] == 2,代表
- 2022-08-23:以下 go 语言代码输出什么?A:map [baz:2 foo:0];B:map [bar:1 baz:2];C:map [baz:2];D:不确定。 package main impo
- Android Studio Unable to load class ''javax.xml.bind.JAXBException''.
- Android Studio 编译报错 Java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
JAXBException 尝试从 Web 服务返回包含不同类型值的 Map
如何解决JAXBException 尝试从 Web 服务返回包含不同类型值的 Map
我继承了当前在 JBoss 3 应用服务器上运行的一组 JBoss.Net (Apache Axis 1) Web 服务。我目前正在寻找修改它们以在 Wildfly (9) 上运行。其中两个非常简单,但第三个有一个返回原始 Map
的网络方法,其中包含 4 个条目:三个是字符串,但第四个是 List
。它因此窒息:
Caused by: javax.xml.bind.JAXBException: class java.util.Vector nor any of its super class is kNown
to this context.
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:582)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsxsitype(XMLSerializer.java:648)
... 59 more
该方法看起来像这样:
@WebService(name="StudentsGetPDR",serviceName="StudentsGetPDR")
public class SWCPDR
{
@WebMethod
public Map getPDRData (@WebParam(name="personNumber") String personNumber)
{
Map<String,Object> returnMap = new HashMap<>();
....
returnMap.put("key1","a string");
returnMap.put("key2","a string");
returnMap.put("key3","a string");
List<String> myList= getStudentList(personNumber);
returnMap.put("key4",myList);
return returnMap;
}
}
我知道这可能不是最好的方法,但我无法更改 API。有什么建议吗?
2021-11-21:map [i][j] == 0,代表 (i,j) 是海洋,渡过的话代价是 2, map [i][j] == 1,代表 (i,j) 是陆地,渡过的话代价是 1, map [i][j] == 2,代表
2021-11-21:map [i][j] == 0,代表 (i,j) 是海洋,渡过的话代价是 2,
map [i][j] == 1,代表 (i,j) 是陆地,渡过的话代价是 1,
map [i][j] == 2,代表 (i,j) 是障碍,无法渡过,
每一步上、下、左、右都能走,返回从左上角走到右下角最小代价是多少,如果无法到达返回 - 1。
来自网易。
答案 2021-11-21:
A * 算法。根据代价排小根堆,到最后就是最优解。小根堆空了,返回 - 1。
时间复杂度:O ((N2)*logN)。
额外空间复杂度:O (N2)。
代码用 golang 编写。代码如下:
package main
import (
"fmt"
"sort"
)
func main() {
map0 := [][]int{
{
1, 0, 1},
{
2, 0, 1},
}
ret := minCost(map0)
fmt.Println(ret)
}
func minCost(map0 [][]int) int {
if map0[0][0] == 2 {
return -1
}
n := len(map0)
m := len(map0[0])
heap := make([]*Node, 0) //模拟小根堆
visited := make([][]bool, n)
for i := 0; i < n; i++ {
visited[i] = make([]bool, m)
}
add(map0, 0, 0, 0, &heap, visited)
for len(heap) > 0 {
sort.Slice(heap, func(i, j int) bool {
a := heap[i]
b := heap[j]
return a.cost < b.cost
})
cur := heap[0]
heap = heap[1:]
if cur.row == n-1 && cur.col == m-1 {
return cur.cost
}
add(map0, cur.row-1, cur.col, cur.cost, &heap, visited)
add(map0, cur.row+1, cur.col, cur.cost, &heap, visited)
add(map0, cur.row, cur.col-1, cur.cost, &heap, visited)
add(map0, cur.row, cur.col+1, cur.cost, &heap, visited)
}
return -1
}
func add(m [][]int, i int, j int, pre int, heap *[]*Node, visited [][]bool) {
if i >= 0 && i < len(m) && j >= 0 && j < len(m[0]) && m[i][j] != 2 && !visited[i][j] {
*heap = append(*heap, NewNode(i, j, pre+twoSelectOne(m[i][j] == 0, 2, 1)))
visited[i][j] = true
}
}
type Node struct {
row int
col int
cost int
}
func NewNode(a, b, c int) *Node {
ret := &Node{
}
ret.row = a
ret.col = b
ret.cost = c
return ret
}
func twoSelectOne(c bool, a int, b int) int {
if c {
return a
} else {
return b
}
}
执行结果如下:
左神 java 代码
2022-08-23:以下 go 语言代码输出什么?A:map [baz:2 foo:0];B:map [bar:1 baz:2];C:map [baz:2];D:不确定。 package main impo
2022-08-23:以下 go 语言代码输出什么?A:map [baz:2 foo:0];B:map [bar:1 baz:2];C:map [baz:2];D:不确定。
package main
import (
"fmt"
)
func main() {
m := map[string]int{"foo": 0, "bar": 1, "baz": 2}
for k := range m {
if k == "foo" {
delete(m, "bar")
}
if k == "bar" {
delete(m, "foo")
}
}
fmt.Println(m)
}
答案 2022-08-23:
答案选 D。因为 map 中元素顺序是随机的,因此结果不确定,每次运行结果可能不一样。
Android Studio Unable to load class ''javax.xml.bind.JAXBException''.
Unable to load class ''javax.xml.bind.JAXBException''解决
解决方案如下:
导入项目第一次运行时,报Unable to load class javax.xml.bind.JAXBException这个错。
解决: 将jdk换成电脑环境变量中配置的jdk1.8 。
默认的版本是android studio 中自带的jdk11的。
如图操作:
1.
2.
这样选择重新编译可解决
Android Studio 编译报错 Java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
解决这个问题,需要了解以下知识点:
一、不同的JDK。
做为安卓开发程序员,我们一般会给电脑安装java,但是Android Studio也自带了java(OpenJdk)。这样,电脑上就会有两个版本的java。
二、不同版本的Android Studio。
Android Studio 4.2.0以下的版本,自带的java是1.8.0。
Android Studio 4.2.0以上的版本,自带的java是11.0.8。
三、问题分析。
1、如果你的AS低于4.2.0,出现这种情况的话。点击Android Studio左上角的File->Project Structure->SDK Location->JDK Location。 把JDK Location,指定为Android Studio根目录下的jre/目录,即可。
2、 如果你的AS高于4.2.0。你需要,确保你的电脑安装了低于JDK9的java版本,建议安装java1.8.0。然后,一样的路径,点击Android Studio左上角的File->Project Structure->SDK Location->JDK Location。 把JDK Location,指定为你安装的 java 1.8.0的目录即可。比如我的是:C:\Program Files\Java\jdk1.8.0_291。如下图所示:
关于JAXBException 尝试从 Web 服务返回包含不同类型值的 Map的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于2021-11-21:map [i][j] == 0,代表 (i,j) 是海洋,渡过的话代价是 2, map [i][j] == 1,代表 (i,j) 是陆地,渡过的话代价是 1, map [i][j] == 2,代表、2022-08-23:以下 go 语言代码输出什么?A:map [baz:2 foo:0];B:map [bar:1 baz:2];C:map [baz:2];D:不确定。 package main impo、Android Studio Unable to load class ''javax.xml.bind.JAXBException''.、Android Studio 编译报错 Java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException等相关内容,可以在本站寻找。
本文标签: