GVKun编程网logo

Servlet在Mac上使用US International键盘获取奇怪的字符

12

在这篇文章中,我们将带领您了解Servlet在Mac上使用USInternational键盘获取奇怪的字符的全貌,同时,我们还将为您介绍有关asp.net-mvc–获取ControllerName和A

在这篇文章中,我们将带领您了解Servlet在Mac上使用US International键盘获取奇怪的字符的全貌,同时,我们还将为您介绍有关asp.net-mvc – 获取ControllerName和ActionName并在Master Page中填充ViewData?、Caused by: java.lang.IllegalArgumentException: Invalid ajaxTest in servlet ma...、com.amazonaws.services.dynamodbv2.document.internal.InternalUtils的实例源码、createEntityManager在org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.getStatus处引发java.lang.NullPointerException的知识,以帮助您更好地理解这个主题。

本文目录一览:

Servlet在Mac上使用US International键盘获取奇怪的字符

Servlet在Mac上使用US International键盘获取奇怪的字符

我有一个简单的表单,可以在其中键入一些字符。这些字符被发送到执行getBytes并打印字节的servlet。“ã”的正确UTF-8字节是-61和-93,但我得到的是-52和-93。:(

我尽一切努力来理解和解决此问题,但没有任何效果。我的机器上的所有东西都应该是UTF-8,所以我怀疑这与我使用了20年的美国国际键盘有关。

是否有任何精明的灵魂从-52和-93那里获得线索?

答案1

小编典典

那是Mac OS罗马字符编码。(0xBB == -52。)

要检查的一些事情:

  • getBytes(string, "UTF-8")和new String(bytes, "UTF-8")
  • 该表格应以UTF-8发送:response.setContentType("text/html; charset="UTF-8");。在JSP中<%@page pageEncoding="UTF-8"%>
  • <form action="..." accept-charset="UTF-8">
    由于所有这些都无济于事:

在Web应用程序(web-xml)中设置请求过滤。

在pom.xml中编码:

<plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-compiler-plugin</artifactId>    <version>...</version>    <configuration>        <source>1.6</source>        <target>1.6</target>        <encoding>${project.build.sourceEncoding}</encoding>    </configuration></plugin><plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-resources-plugin</artifactId>    <version>...</version>    <configuration>        <encoding>${project.build.sourceEncoding}</encoding>    </configuration></plugin>...<properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>

asp.net-mvc – 获取ControllerName和ActionName并在Master Page中填充ViewData?

asp.net-mvc – 获取ControllerName和ActionName并在Master Page中填充ViewData?

我有一个SuperController将继承自所有的控制器。在构造函数中,我试图使用ControllerName和ActionName填充ViewData。

我不会传递ControllerName和ActionName作为ViewData。我有一个方法需要ControllerName和ActionName,我需要传递方法的返回值作为ViewData。

我怎样才能做到这一点?

解决方法

不要使用ViewData。在您的Site.Master中使用:
<%= ViewContext.RouteData.Values["Controller"] %>
<%= ViewContext.RouteData.Values["Action"] %>

SO – Getting the name of the controller and action method in the view in ASP.Net MVC

Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> ajaxTest in servlet ma...

Caused by: java.lang.IllegalArgumentException: Invalid ajaxTest in servlet ma...

今天遇到一个问题,很简单的代码竟然出错了

报了这么个异常

原因是:

异常说无法实例化,原因是这个ajaxTest这个url-pattern是错误的

也就是说注解应该写成/ajaxTest,需要在前面添加一个斜杠,如果使用的xml配置的映射路径,对照一下class和url-pattern是否正确。

。。。这次的错误是因为用了框架,太方便了,在spring框架中这个斜杠不写也会自动加上,结果写servlet也顺手了。。。。

 

com.amazonaws.services.dynamodbv2.document.internal.InternalUtils的实例源码

com.amazonaws.services.dynamodbv2.document.internal.InternalUtils的实例源码

项目:webcrawler    文件:CrawlerBatchService.java   
@Override
public Map<String,AttributeValue> getNodes(WebsiteModel websiteModel) {

    try
    {
        ObjectMapper mapper = new ObjectMapper();
        String string = mapper.writeValueAsstring(websiteModel);
        Item item = new Item().withJSON(Utils.params.nodes,string);
        return InternalUtils.toAttributeValues(item);
    }
    catch (JsonProcessingException e)
    {
        LOG.error(e.getMessage());
    }

    return new HashMap<>();
}
项目:webcrawler    文件:CrawlerService.java   
@Override
public Mono<Map<String,Object>> getWebsites(String url) {

    return Mono.from(this.getItemResultMono(url))
            .flatMap(
                    (result) -> {
                        if (result.getItem() != null) return Mono.just(result.getItem());
                        return this.putItemResultMono(url);
                    })
            .doOnError((throwable -> LOG.error(Utils.error.Failed_get_website,url)))
            .map(InternalUtils::toSimpleMapValue);
}
项目:logback-ext    文件:DynamoDbAppender.java   
@Override
protected void handle(final ILoggingEvent event,final String encoded) throws Exception {
    Item item = Item.fromJSON(encoded).withPrimaryKey(createEventId(event));
    Map<String,AttributeValue> attributes = InternalUtils.toAttributeValues(item);
    PutItemRequest request = new PutItemRequest(table,attributes);
    String errorMessage = format("Appender '%s' Failed to send logging event '%s' to DynamoDB table '%s'",getName(),event,table);
    CountDownLatch latch = new CountDownLatch(isAsyncParent() ? 0 : 1);
    dynamoDb.putItemAsync(request,new LoggingEventHandler<PutItemRequest,PutItemResult>(this,latch,errorMessage));
    AppenderExecutors.awaitLatch(this,getMaxFlushTime());
}
项目:reinvent2015-practicaldynamodb    文件:InternalCalls.java   
/**
 * This method is calling an internal API which Could be changed over time.
 * It is only for use of this demo and not expected for external use.
 */
public static Map<String,Object> toSimpleMapValue(
        Map<String,AttributeValue> values) {
    return InternalUtils.toSimpleMapValue(values);
}

createEntityManager在org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.getStatus处引发java.lang.NullPointerException

createEntityManager在org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.getStatus处引发java.lang.NullPointerException

部署hibernate应用程序时出现堆栈跟踪

java.lang.NullPointerException    at org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.getStatus(JtaStatusHelper.java:72) [hibernate-core-4.0.0.Beta1.jar:4.0.0.Beta1]    at org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.isActive(JtaStatusHelper.java:114) [hibernate-core-4.0.0.Beta1.jar:4.0.0.Beta1]    at org.hibernate.engine.transaction.internal.jta.CMTTransaction.join(CMTTransaction.java:149) [hibernate-core-4.0.0.Beta1.jar:4.0.0.Beta1]    at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:1197) [hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1]    at org.hibernate.ejb.AbstractEntityManagerImpl.postInit(AbstractEntityManagerImpl.java:170) [hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1]    at org.hibernate.ejb.EntityManagerImpl.<init>(EntityManagerImpl.java:90) [hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1]    at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:112) [hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1]    at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:107) [hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1]    at com.mycompany.myapp.common.persistence.HibernateUtil.<clinit>(HibernateUtil.java:53) [classes:]    at com.mycompany.myapp.common.businessobjects.ServerSettings.GetServerSettings(ServerSettings.java:247) [classes:]    at com.mycompany.myapp.common.servlet.SecurityFilter.init(SecurityFilter.java:55) [classes:]    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:447) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3245) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3836) [jbossweb-7.0.0.CR4.jar:7.0.0.Final]    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.0.Final.jar:7.0.0.Final]    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)    at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]    at java.lang.Thread.run(Thread.java:680) [:1.6.0_26]

它在我的HibernateUtil类中命中了NPE,第53行是创建EntityManager的行-
看起来createEntityManager()返回的是null。代码看起来像

private static EntityManagerFactory entityManagerFactory = null;private static EntityManager entityManager = null;static {    try {        entityManagerFactory = Persistence.createEntityManagerFactory("primary");        entityManager = entityManagerFactory.createEntityManager();

我的persistence.xml看起来像

<?xml version="1.0" encoding="UTF-8"?><persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="primary"> <jta-data-source>java:jboss/datasources/MySqlDS</jta-data-source>  <properties>     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>     <property name="hibernate.ejb.interceptor.session_scoped" value="com.mycompany.myapp.common.persistence.BusinessObjectInterceptor"/>           </properties>

有什么想法为什么createEntityManager()给NPE?

答案1

小编典典

Stacktrace明确表明Hibernate无法加入JTA事务。此外,comination <jta-data-source>Persistence.createEntityManagerFactory()看起来很奇怪-
JTA能力EntityManager通常是由应用服务器创建并且通过JNDI从它获得。

如果您实际上要使用本地资源事务而不是JTA,则需要声明<non-jta-data-source>

关于Servlet在Mac上使用US International键盘获取奇怪的字符的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于asp.net-mvc – 获取ControllerName和ActionName并在Master Page中填充ViewData?、Caused by: java.lang.IllegalArgumentException: Invalid ajaxTest in servlet ma...、com.amazonaws.services.dynamodbv2.document.internal.InternalUtils的实例源码、createEntityManager在org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.getStatus处引发java.lang.NullPointerException的相关知识,请在本站寻找。

本文标签: