GVKun编程网logo

JAXBException 尝试从 Web 服务返回包含不同类型值的 Map

4

对于想了解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

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,代表

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 (N
2)。

代码用 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 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''.

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

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等相关内容,可以在本站寻找。

本文标签: