小编278*_*184的帖子

java.lang.ClassCastException:java.io.ObjectStreamClass无法强制转换为java.lang.String

我在tomcat上运行web应用程序时遇到堆栈跟踪错误,无法找到此异常的根本原因.

Eclipse 32 bit Luna Release (4.4.0)
Tomcat 32 bit 8.0.30
jdk1.8.0_66
Run Code Online (Sandbox Code Playgroud)
    Jan 01, 2016 10:02:16 AM org.apache.catalina.session.StandardManager startInternal
SEVERE: Exception loading sessions from persistent storage
java.lang.ClassCastException: java.io.ObjectStreamClass cannot be cast to java.lang.String
    at java.io.ObjectInputStream.readTypeString(ObjectInputStream.java:1419)
    at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:719)
    at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:831)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1602)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
    at org.apache.catalina.session.StandardSession.doReadObject(StandardSession.java:1627)
    at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1090)
    at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:261)
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:180)
    at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:460)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5272)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Jan 01, 2016 …
Run Code Online (Sandbox Code Playgroud)

tomcat exception

9
推荐指数
2
解决办法
9490
查看次数

为什么在重写finalize()方法时首选调用super.finalize()?

我收到SonarQube错误:" 强烈建议在此方法实现结束时调用super.finalize(),以防父实现必须也处置一些系统资源. "

但我发现Object该类没有实现finalize方法.

protected void finalize() throws Throwable { }
Run Code Online (Sandbox Code Playgroud)

那为什么需要打电话super.finalize()

java sonarqube

7
推荐指数
2
解决办法
2872
查看次数

Jackson databind:无法构造“java.time.OffsetDateTime”的实例

我正在将我的项目从 dropwizard 转移到 mirconuat,并且在使用 Web 服务响应时遇到异常。我尝试升级杰克逊版本,但失败并出现警告和以下原因。

Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.time.OffsetDateTime` (no Creators, like default constructor, exist): no String-argument constructor/factory method to deserialize from String value ('2020-06-25T05:56:44.044423+08:00')
 at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 206] (through reference chain: com.Port["_ModifiedAt"])
    at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)
    at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1615)
    at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)
    at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1077)
    at com.fasterxml.jackson.databind.deser.ValueInstantiator._createFromStringFallbacks(ValueInstantiator.java:371)
    at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromString(StdValueInstantiator.java:323)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromString(BeanDeserializerBase.java:1408)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:176)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:166)
    at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:371)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId(BeanDeserializerBase.java:1288)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:162)
    at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:2020)
    at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1179)
    at com.fasterxml.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:810)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:256)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:235)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)
    at …
Run Code Online (Sandbox Code Playgroud)

jax-rs jackson fasterxml jackson-databind java-11

7
推荐指数
1
解决办法
7758
查看次数

如何更换 & 到 & 在 SQL 中?

我的数据库表中有一些错误数据。我要全部更换&&&amp&amp&而已。

在java中它工作正常。在SQL中怎么做?

爪哇:

    String[] names = new String[] { "Ravi Suthar", 
                                    "Ravi & Suthar", 
                                    "Ravi & Suthar",
                                    "Ravi & Suthar",
                                    "Ravi & Suthar" };

    for (String name : names) {
        System.out.println(name.replaceAll("&[amp;]*", "&"));
    }
Run Code Online (Sandbox Code Playgroud)

查询语句:

UPDATE tablename SET columnname=REPLACE(columnname,'&[amp;]*','&');
Run Code Online (Sandbox Code Playgroud)

java regex sql sql-server sql-update

6
推荐指数
1
解决办法
2万
查看次数

如何使用类型参数传递空列表?

class User{
    private int id;
    private String name;

    public User(int id, String name) {
        this.id = id;
        this.name = name;
    }
}

class Service<T> {
    private List<T> data;
    public void setData(List<T> data) {
        this.data = data;
    }
}

public class ServiceTest {
    public static void main(String[] args) {
        Service<User> result=new Service<User>();
        result.setData(Collections.emptyList()); // problem is here
    }
}
Run Code Online (Sandbox Code Playgroud)

如何使用类型参数传递空列表?

编译器给我错误信息:

参数类型中的方法setData(List <User>)不适用于参数(List <Object>)

如果我尝试使用List进行转换,那么错误:

无法从List <Object>强制转换为List <User>

result.setData(new ArrayList<User>()); 工作正常,但我不想通过它.

java generics collections list

5
推荐指数
2
解决办法
7095
查看次数

Oracle:sql select查询,如果条件参数为空,则忽略该参数

假设我有一个 oracle 查询

SELECT *
FROM EMPLOYEE
WHERE DEPARTMENT = ?
    AND DESIGNATION = ?
    AND DISTRICT = ?
    AND CIRCLE = ?
Run Code Online (Sandbox Code Playgroud)

并且很可能参数 (?) 的任何 1 或 2 或 3 可以为空或 null。
那么我该怎么做才能让where子句中的空参数完全“忽略”,只搜索表中的非空参数。
我怎样才能做到这一点

请帮忙.. 查询必须兼容oracle 10g。谢谢

java sql oracle

5
推荐指数
1
解决办法
9564
查看次数

如何使用Cell获取Cell Reference?

我正在使用apache poi 3.11,来自CellReference,我可以使用以下代码获取rowIndex和Column Index.

CellReference cr = new CellReference("A1");
row = mySheet.getRow(cr.getRow());
cell = row.getCell(cr.getCol());
Run Code Online (Sandbox Code Playgroud)

但我的rowIndex和columnIndex是动态生成的,如何使用rowIndex和columnIndex获取CellReference?

XSSFRow row = mySheet.getRow(rowIndex); 
XSSFCell cell = row.getCell(columnIndex);
Run Code Online (Sandbox Code Playgroud)

java apache-poi

4
推荐指数
1
解决办法
6228
查看次数

JSON解析错误:无法构造类的实例

无法将json字符串映射到java对象,得到错误JSON解析错误:无法构造com.test.CPInput的实例$ Evc $ Uni

错误:

{
"timestamp": 1502270576300,
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.http.converter.HttpMessageNotReadableException",
"message": "**JSON parse error: Can not construct instance of com.test.CPInput$Evc$Uni: can only instantiate non-static inner class by using default, no-argument constructor; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.test.CPInput$Evc$Uni: can only instantiate non-static inner class by using default, no-argument constructor at [Source: java.io.PushbackInputStream@edc246; line: 20, column: 9] (through reference chain: com.test.CPInput["evc"]->com.test.CPInput$Evc["uni"]->java.util.ArrayList[0]**)",
"path": "/demo/addCustomer"
}
Run Code Online (Sandbox Code Playgroud)

JSON

{
  "customerId": "abcdef",
  "customerSegment": {
    "customerType": "customer type", …
Run Code Online (Sandbox Code Playgroud)

java post json spring-boot spring-restcontroller

4
推荐指数
1
解决办法
6736
查看次数

无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/ projectName]]

我在tomcat-8上运行应用程序时遇到以下错误.我使用Eclipse Luna-32位,tomcat-8 32位,Java-8 32位.

INFO: Starting Servlet Engine: Apache Tomcat/8.0.18
Dec 24, 2015 6:36:59 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor E:\PROJECTS\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost\connect_afs_ui.xml
Dec 24, 2015 6:36:59 PM org.apache.catalina.startup.SetContextPropertiesRule begin
WARNING: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:connect_afs_ui' did not find a matching property.
Dec 24, 2015 6:36:59 PM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/connect_afs_ui]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:581)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1683)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745) …
Run Code Online (Sandbox Code Playgroud)

tomcat8

3
推荐指数
1
解决办法
4万
查看次数

SQL 避免在 select 语句中两次调用相同的函数

我有一个 select 语句两次调用相同的函数以返回两个不同的列,由于同一个函数被调用两次,因此产生了性能问题。

我只想调用一次函数并将其值复制到另一列。在oracle中可能吗?

SELECT ID
    ,PKGRESTFUNCTION.getBlock(table.ID, table.TYPE) "BLOCK" 
    ,PKGRESTFUNCTION.getBlock(table.ID, table.TYPE) "MASK"
    from table 
    where ID=condition;
Run Code Online (Sandbox Code Playgroud)

oracle select function

3
推荐指数
1
解决办法
411
查看次数

意外元素(uri:"",local:"").预期要素是(无)

我无法使用cxf-xjc-plugin将响应xml映射到xsd生成的java.

的pom.xml

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-xjc-plugin</artifactId>
                <version>2.3.0</version>
                <configuration>
                    <extensions>
                        <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:2.3.0</extension>
                    </extensions>
                </configuration>
                <executions>
                    <execution>
                        <id>generate-sources-trans</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>xsdtojava</goal>
                        </goals>
                        <configuration>
                            <sourceRoot>${basedir}/src/main/java</sourceRoot>
                            <xsdOptions>
                                <xsdOption>
                                    <xsd>src/main/resources/Response.xsd</xsd>
                                    <packagename>com.test.response</packagename>
                                    <extensionArgs>
                                        <extensionArg>-Xdv</extensionArg>
                                    </extensionArgs>
                                </xsdOption>                                
                                </xsdOption>
                            </xsdOptions>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
Run Code Online (Sandbox Code Playgroud)

Response.xsd

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:automatedIDgenerationResponse" xmlns:tns="urn:automatedIDgenerationResponse" xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!-- definition of simple elements -->
    <complexType name="generatedIDs">
            <sequence>
                <element name="idType" type="string"/>
                <element name="id" type="string"/>
            </sequence>
    </complexType>
    <element name="automatedIDgenerationResponse" type="tns:automatedIDResponse"/>
    <complexType name="automatedIDResponse">
        <sequence>
            <element name="requestID" type="string" nillable="false"/>
            <element name="status" type="string" nillable="false"/>
            <element name="errorCode" …
Run Code Online (Sandbox Code Playgroud)

java xml xsd pom.xml cxf-xjc-plugin

1
推荐指数
1
解决办法
5745
查看次数

使用@PathVariable 获取多个请求参数

在获取请求中使用多个参数调用请求时出现以下错误: http://localhost:8080/find/1/empid/146220

白标错误页面

此应用程序没有明确的 /error 映射,因此您将其视为后备。

Tue Aug 01 19:33:35 IST 2017 出现意外错误(类型 = 内部服务器错误,状态 = 500)。参数绑定的名称不能为 null 或为空!在 JDK < 8 上,您需要使用 @Param 来命名参数,在 JDK 8 或更高版本上,请务必使用 -parameters 进行编译。嵌套异常是 java.lang.IllegalArgumentException:参数绑定的名称不能为 null 或为空!在 JDK < 8 上,您需要使用 @Param 作为命名参数,在 JDK 8 或更高版本上,请务必使用 -parameters 进行编译。

演示.java

@Entity
public class Demo {

    @Id
    private Long id;
    private String name;
    private String value;
    //getter -setter
}
Run Code Online (Sandbox Code Playgroud)

演示应用程序.java

@SpringBootApplication
@RestController
public class DemoApplication {

    @Autowired
    private DemoRepository repository;

    @RequestMapping(method=RequestMethod.GET, value="/find/{id}/{name}/{value}")
    public Demo find(@PathVariable Long …
Run Code Online (Sandbox Code Playgroud)

java spring-data spring-data-jpa spring-boot

0
推荐指数
1
解决办法
2259
查看次数