GVKun编程网logo

spring – java.lang.IllegalStateException:SockJsMessageCodec是必需的但不可用:(sockjs报错)

8

如果您对spring–java.lang.IllegalStateException:SockJsMessageCodec是必需的但不可用:感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您

如果您对spring – java.lang.IllegalStateException:SockJsMessageCodec是必需的但不可用:感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于spring – java.lang.IllegalStateException:SockJsMessageCodec是必需的但不可用:的详细内容,我们还将为您解答sockjs报错的相关问题,并且为您提供关于Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException、com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:需要一个字符串,但在第 6 行第 17 列路径 $.ErrMsgDtl 处为 BEGIN_OBJECT、com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_ARRAY但是STRING、Hibernate Search + Spring Boot:java.lang.IllegalStateException:没有可用的事务性EntityManager的有价值信息。

本文目录一览:

spring – java.lang.IllegalStateException:SockJsMessageCodec是必需的但不可用:(sockjs报错)

spring – java.lang.IllegalStateException:SockJsMessageCodec是必需的但不可用:(sockjs报错)

你好我是websocket的新手.我不知道为什么我得到这个例外.

 java.lang.IllegalStateException: A SockJsMessageCodec is required but not available: Add Jackson 2 to the classpath,or configure a custom SockJsMessageCodec.
    at org.springframework.util.Assert.state(Assert.java:385)
    at org.springframework.web.socket.sockjs.transport.TransportHandlingSockJsService.getMessageCodec(TransportHandlingSockJsService.java:130)
    at org.springframework.web.socket.sockjs.transport.session.WebSocketServerSockJsSession.handleMessage(WebSocketServerSockJsSession.java:187)
    at org.springframework.web.socket.sockjs.transport.handler.sockJsWebSocketHandler.handleTextMessage(SockJsWebSocketHandler.java:92)
    at org.springframework.web.socket.handler.AbstractWebSocketHandler.handleMessage(AbstractWebSocketHandler.java:43)
    at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:112)
    at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.access$000(StandardWebSocketHandlerAdapter.java:42)
    at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:82)
    at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:79)
    at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:369)
    at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:468)
    at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:272)
    at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:116)
    at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:54)
    at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener.onDataAvailable(WsHttpUpgradeHandler.java:192)
    at org.apache.coyote.http11.upgrade.AbstractServletInputStream.onDataAvailable(AbstractServletInputStream.java:178)
    at org.apache.coyote.http11.upgrade.AbstractProcessor.upgradedispatch(AbstractProcessor.java:92)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:601)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745) 

我的控制台输出

opening Web Socket... stomp.js:145
Web Socket Opened... stomp.js:145
>>> CONNECT
accept-version:1.1,1.0
heart-beat:10000,10000   stomp.js:145


Whoops! Lost connection to undefined 

这是我的bjplayer-servlet.xml

fig/>

    jplayer"/>

    broker application-destination-prefix="/app">
        broker prefix="/topic"/>
    broker>

对于我的控制器

@MessageMapping("/joinRoom")
@SendTo("/topic/lobby")
public Liststem.out.println("your RoomName is: "+room.getRoomName());
    return roomService.getRooms();
}

我的JavaScript


                  

总结

以上是小编为你收集整理的spring – java.lang.IllegalStateException:SockJsMessageCodec是必需的但不可用:全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

springspring

Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException

Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException

我在解析json数据时遇到此错误

Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2

我无法找到解决方案.我的json数据是:

{
  "user": [
    {
      "email": "wijden@jerseyrest.com",
      "firstName": "Wijden",
      "id": "1",
      "lastName": "User"
    }, {
      "email": "user@jerseyrest.com",
      "firstName": "Sample",
      "id": "2",
      "lastName": "User"
    }, {
      "email": "ingenieur@jerseyrest.com",
      "firstName": "Ingenieur",
      "id": "3",
      "lastName": "User"
    }
  ]
}

这就是我做到的方式:

Type type = new Typetoken<List<WorkItem>>() { }.getType();
List<WorkItem> workitems = (List<WorkItem>) new Gson().fromJson(resultat, type);

如果你能帮助我解决问题,我将不胜感激.提前致谢

解决方法:

为了解析你的JSON,我创建了包装响应的类,即:

public class Response {
  @Serializedname("user")
  private List<User> userList;
  //getters and setters
}

和,

public class User{
  @Serializedname("id")
  private int id;
  @Serializedname("email")
  private String email;
  @Serializedname("firstName")
  private String firstName;
  @Serializedname("lastName")
  private String lastName;
  //getters and setters
}

然后,为了解析您的JSON响应,您只需要:

Gson gson = new Gson();
Response data = gson.fromJson(yourjsonString, Response.class);

然后,您可以非常轻松地访问您的数据,例如:

User user = data.getUserList.get(i);

注意:使用注释@Serializedname对于分离JSON响应中和应用程序中的字段名称很有意义,以便遵循Java命名约定…

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:需要一个字符串,但在第 6 行第 17 列路径 $.ErrMsgDtl 处为 BEGIN_OBJECT

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:需要一个字符串,但在第 6 行第 17 列路径 $.ErrMsgDtl 处为 BEGIN_OBJECT

如何解决com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:需要一个字符串,但在第 6 行第 17 列路径 $.ErrMsgDtl 处为 BEGIN_OBJECT?

从服务器解析数据时获取 JsonSyntax 异常。我检查了我的模型类和服务器响应。对我来说看起来不错。知道如何解决这个问题吗?错误表示预期的字符串,但为 begin_object。不知道我哪里做错了。 以下是来自服务器的响应

 {
        "Data": {
            "Transactions": [
                {
                    "Earns": [
                        {
                            "Description": "","EarnId": "46723912","Earned": 10000.0
                        }
                    ],"Expires": "2021-12-31 00:00:00","Store": "QATes","StoreTrans": "107884927","TranDate": "2021-02-01 12:26:34"
                }
            ]
        },"Status": "SUCCESS","ErrCde": null,"ErrMsg": null,"ErrMsgDtl": null
    }
    

下面是我的模型类

class BonusSummaryDataResponse {
        @Serializedname("Transactions")
        var transactions: ArrayList<BonusTransData>? = null

        class BonusTransData {
            @Serializedname("Earns")
            var earns: ArrayList<BonusEarnsData>? = null

            @Serializedname("Expires")
            var expires: String? = null

            @Serializedname("Store")
            var store: String? = null

            @Serializedname("StoreTrans")
            var storeTrans: String? = null

            @Serializedname("TranDate")
            var tranDate: String? = null
        }

        class BonusEarnsData {
            @Serializedname("Description")
            var description: String? = null

            @Serializedname("EarnId")
            var earnId: String? = null

            @Serializedname("Earned")
            var earned: Double = 0.0
        }

}

ResponseWrapper

data class ResponseWrapper<T>(
        @Serializedname("Data")
        var data: T?,@Serializedname("Status")
        val status: String? = null,@Serializedname("ErrCde")
        val errorCode: String? = null,@Serializedname("ErrMsg")
        val errorMessage : String? = null,@Serializedname("ErrMsgDtl")
        val errorMessageDetail: String?= null)

如下所示,我们正在调用函数:

 @POST("services/abc/summary")
    fun getBonusCashSummary(@Body tBonusSummaryRequest: BonusSummaryRequest): 
 Observable<ResponseWrapper<BonusSummaryDataResponse>>

ResponseWrapper 上面是我们传递 BonusSummaryDataResponse 数据类的通用类。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_ARRAY但是STRING

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_ARRAY但是STRING

这是我使用Gson进行序列化的第一种方法.我像这样回复了我的Android应用程序的facebook响应

我的Json:

 {"data": [
    {
        "pic_square": "https://fbcdn-profile-a.akamaihd.netxxxx1388091435_797626998_q.jpg",
        "uid": "10202xxx852765",
        "name": "Mister X"
    },
    {
        "pic_square": "https://fbcdn-profile-a.akamaihd.netxxxx1388091435_797626998_q.jpg",
        "uid": "10202xxx852765",
        "name": "Mister X"
    }
   ]
}



    try {
       final GsonBuilder builder = new GsonBuilder();
       final Gson gson = builder.create();
       JSONObject data= response.getGraphObject().getInnerjsonObject();             
       FacebookResponses facebookResponses= gson.fromJson(data.toString(),FacebookResponses.class); //exception here
       Log.i(TAG, "Result: " + facebookResponses.toString());
    } catch (JsonSyntaxException e) {
        e.printstacktrace();

}
我的课

public class FacebookResponses implements Serializable {
  private static final long serialVersionUID = 1L;
      @Serializedname("data");
      private FacebookRisp[] data;
}

class FacebookRisp implements Serializable {

    private static final long serialVersionUID = 1L;

   @Serializedname("pic_square")
   private String[] pic_square;

   @Serializedname("uid")
   private String[] uid;

   @Serializedname("name")
   private String[] name;

   public String[] getPic_square() {
        return pic_square;
   }

   public void setPic_square(String[] pic_square) {
    this.pic_square = pic_square;
   }

    public String[] getUid() {
    return uid;
   }

   public void setUid(String[] uid) {
    this.uid = uid;
   }

   public String[] getName() {
    return name;
   }

   public void setName(String[] name) {
    this.name = name;
   }

 }

我明白了
com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_ARRAY但在第1行第118列为STRING

更新:
我修改了爱琴海的答案,问题是[]

@Serializedname("pic_square")
private String**[]** pic_square;   //ex here and others

解决方法:

将您的FacebookResponses类更改为:

private class FacebookResponses {
    private Data[] data;
}

private class Data {
    @Serializedname("pic_square")
    private String picSquare;
    private String uid;
    private String name;
}

编辑:因为您的json响应的结构如下所示:

Hibernate Search + Spring Boot:java.lang.IllegalStateException:没有可用的事务性EntityManager

我正在尝试按照本教程在Spring Boot应用程序中设置Hibernate Search 。问题是我在启动时遇到错误:

Caused by: java.lang.IllegalStateException: No transactional EntityManager available    at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:279) ~[spring-orm-5.0.7.RELEASE.jar:5.0.7.RELEASE]    at com.sun.proxy.$Proxy110.unwrap(Unknown Source) ~[na:na]    at org.hibernate.search.jpa.Search.getSession(Search.java:55) ~[hibernate-search-orm-5.9.0.Final.jar:5.9.0.Final]    at org.hibernate.search.jpa.Search.getFullTextEntityManager(Search.java:49) ~[hibernate-search-orm-5.9.0.Final.jar:5.9.0.Final]    at mz.api.spring.service.HibernateSearchService.initializeHibernateSearch(HibernateSearchService.java:26) ~[classes/:na]    at mz.api.spring.config.HibernateSearchConfig.hibernateSearchService(HibernateSearchConfig.java:25) ~[classes/:na]    at mz.api.spring.config.HibernateSearchConfig$$EnhancerBySpringCGLIB$$6594e5b4.CGLIB$hibernateSearchService$0(<generated>) ~[classes/:na]    at mz.api.spring.config.HibernateSearchConfig$$EnhancerBySpringCGLIB$$6594e5b4$$FastClassBySpringCGLIB$$ab525f18.invoke(<generated>) ~[classes/:na]    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-5.0.7.RELEASE.jar:5.0.7.RELEASE]    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]    at mz.api.spring.config.HibernateSearchConfig$$EnhancerBySpringCGLIB$$6594e5b4.hibernateSearchService(<generated>) ~[classes/:na]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_181]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]    ... 24 common frames omitted

我不明白是什么原因导致了这个问题。


相关代码:

@SpringBootApplication@EnableJpaRepositories(basePackages = "mz.api.spring.repository")@EntityScan(basePackages = "mz.api.hibernate.model")@EnableTransactionManagementpublic class Application {    private final static Logger LOGGER = LogManager.getLogger(Application.class);    public static void main(String[] args) {        LOGGER.debug("Running application ..");        SpringApplication.run(Application.class, args);    }}

..

@Service public class HibernateSearchService {    private final EntityManager entityManager;    @Autowired    public HibernateSearchService(EntityManager entityManager) {        this.entityManager = entityManager;    }    public void initializeHibernateSearch() {        try {            FullTextEntityManager fullTextEntityManager = getFullTextEntityManager(this.entityManager);            fullTextEntityManager.createIndexer().startAndWait();        } catch (InterruptedException e) {            e.printStackTrace();        }        }}

..

@Configurationpublic class HibernateSearchConfig {    private final EntityManager entityManager;    @Autowired    public HibernateSearchConfig(EntityManager entityManager) {        this.entityManager = entityManager;    }    @Bean    HibernateSearchService hibernateSearchService() {        HibernateSearchService hibernateSearchService = new HibernateSearchService(this.entityManager);        hibernateSearchService.initializeHibernateSearch();        return hibernateSearchService;    }}

答案1

小编典典

我设法通过自动装配EntityManagerFactory使其起作用。然后使用EntityManagerFactory创建一个EntityManager。

@Servicepublic class HibernateSearchService {    private final EntityManager entityManager;    @Autowired    public HibernateSearchService(final EntityManagerFactory entityManagerFactory) {        this.entityManager = entityManagerFactory.createEntityManager();    }    @PostConstruct    public void initializeHibernateSearch() {        try {            FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);            fullTextEntityManager.createIndexer().startAndWait();        } catch (InterruptedException e) {            e.printStackTrace();        }    }

今天关于spring – java.lang.IllegalStateException:SockJsMessageCodec是必需的但不可用:sockjs报错的讲解已经结束,谢谢您的阅读,如果想了解更多关于Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException、com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:需要一个字符串,但在第 6 行第 17 列路径 $.ErrMsgDtl 处为 BEGIN_OBJECT、com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期BEGIN_ARRAY但是STRING、Hibernate Search + Spring Boot:java.lang.IllegalStateException:没有可用的事务性EntityManager的相关知识,请在本站搜索。

本文标签: