GVKun编程网logo

java – Track.getSimilar:在元素中找到了无效的XML字符(Unicode:0x3)…(在文档的元素中找到无效的xml字符)

6

如果您想了解java–Track.getSimilar:在元素中找到了无效的XML字符(Unicode:0x3)…和在文档的元素中找到无效的xml字符的知识,那么本篇文章将是您的不二之选。我们将深入剖

如果您想了解java – Track.getSimilar:在元素中找到了无效的XML字符(Unicode:0x3)…在文档的元素中找到无效的xml字符的知识,那么本篇文章将是您的不二之选。我们将深入剖析java – Track.getSimilar:在元素中找到了无效的XML字符(Unicode:0x3)…的各个方面,并为您解答在文档的元素中找到无效的xml字符的疑在这篇文章中,我们将为您介绍java – Track.getSimilar:在元素中找到了无效的XML字符(Unicode:0x3)…的相关知识,同时也会详细的解释在文档的元素中找到无效的xml字符的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

java – Track.getSimilar:在元素中找到了无效的XML字符(Unicode:0x3)…(在文档的元素中找到无效的xml字符)

java – Track.getSimilar:在元素中找到了无效的XML字符(Unicode:0x3)…(在文档的元素中找到无效的xml字符)

我使用last.fm API:Api Last.fm

我有他们的艺术家的歌曲(曲目)列表,我想恢复每首歌曲,如他的歌曲. Track.getSimilar(Artist,track,key)的方法非常有效.但是当艺术家或曲目使用阿拉伯语时,我会遇到以下异常:

    [Fatal error] :2583:13: An invalid XML character (Unicode: 0x3) was found in the element content of the document.
Exception in thread "main" de.umass.lastfm.CallException: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x3) was found in the element content of the document.
at de.umass.lastfm.Caller.call(Caller.java:268)
at de.umass.lastfm.Caller.call(Caller.java:189)
at de.umass.lastfm.Track.getSimilar(Track.java:369)

我该如何解决这个问题呢?

先感谢您

解决方法:

Unicode代码点0x3是控制字符.它不是任何脚本或语言系统中的正常字符,因此它的存在显然是一个错误,可能在数据库本身.这可能是编码转换失败,字符到字节转换或数据库写入损坏的结果.

XML不能包含控制字符 – 甚至不包含实体引用.因此,您的XML格式不正确,无法使用XML工具进行处理.相反,您需要使用字符串处理或类似方法删除该错误字符.

同时,您可以检查XML中非法的所有其他字符. XML不允许来自Unicode代理块[0xD800 – 0xDFFF]的任何字符,非字符0xFFFE和0xFFFF或低于0x20(=控制字符)的字符执行0x9 [tab],0xA [LF]和0xD [CR].这在这里正式陈述:http://www.w3.org/TR/2000/REC-xml-20001006#NT-Char

Appengine DevMode:拒绝访问(“java.lang.RuntimePermission”“accessClassInPackage.sun.security.util”)

Appengine DevMode:拒绝访问(“java.lang.RuntimePermission”“accessClassInPackage.sun.security.util”)

我将我的PC升级到Ubuntu 12.04,然后恢复了我的工作区和Eclipse的备份.现在,当我尝试启动AppEngine / GWT应用程序时,我遇到了java安全管理器的问题.

Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.security.util")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
    at java.security.AccessController.checkPermission(AccessController.java:555)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:252)

我正在使用appengine SDK 1.6.4和Objectify4

我的java版本是

OpenJDK运行时环境(IcedTea7 2.1)(7~u3-2.1-1ubuntu3)
OpenJDK 64位服务器VM(内置22.0-b10,混合模式)

我已经尝试回到jdk 6,但这没有帮助.我也尝试通过更改java.policy文件并定义本地策略文件来解决此问题.到目前为止没有运气.我从svn下载了AppEngine SDK源代码,但行号并不真正匹配,但我可以看到设置了更严格的安全管理器.

完整的堆栈跟踪在这里…任何帮助赞赏:

java.lang.ExceptionInInitializerError
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:224)
    at sun.security.jca.ProviderConfig$2.run(ProviderConfig.java:206)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:206)
    at sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
    at sun.security.jca.ProviderList.getProvider(ProviderList.java:232)
    at sun.security.jca.ProviderList.getService(ProviderList.java:330)
    at sun.security.jca.GetInstance.getInstance(GetInstance.java:157)
    at java.security.Security.getImpl(Security.java:695)
    at java.security.AlgorithmParameters.getInstance(AlgorithmParameters.java:146)
    at sun.security.x509.AlgorithmId.decodeParams(AlgorithmId.java:121)
    at sun.security.x509.AlgorithmId.<init>(AlgorithmId.java:114)
    at sun.security.x509.AlgorithmId.parse(AlgorithmId.java:381)
    at sun.security.x509.X509Key.parse(X509Key.java:168)
    at sun.security.x509.CertificateX509Key.<init>(CertificateX509Key.java:75)
    at sun.security.x509.X509CertInfo.parse(X509CertInfo.java:705)
    at sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:169)
    at sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1747)
    at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:196)
    at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:97)
    at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)
    at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:747)
    at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
    at java.security.KeyStore.load(KeyStore.java:1214)
    at com.google.appengine.api.urlfetch.dev.LocalURLFetchService.getTrustStore(LocalURLFetchService.java:190)
    at com.google.appengine.api.urlfetch.dev.LocalURLFetchService.createValidatingScheme(LocalURLFetchService.java:206)
    at com.google.appengine.api.urlfetch.dev.LocalURLFetchService.createHttpClient(LocalURLFetchService.java:252)
    at com.google.appengine.api.urlfetch.dev.LocalURLFetchService.init(LocalURLFetchService.java:298)
    at com.google.appengine.api.channel.dev.LocalChannelService.createFetchService(LocalChannelService.java:83)
    at com.google.appengine.api.channel.dev.LocalChannelService.init(LocalChannelService.java:62)
    at com.google.appengine.tools.development.ApiProxyLocalImpl.startServices(ApiProxyLocalImpl.java:581)
    at com.google.appengine.tools.development.ApiProxyLocalImpl.access$700(ApiProxyLocalImpl.java:46)
    at com.google.appengine.tools.development.ApiProxyLocalImpl$2.run(ApiProxyLocalImpl.java:564)
    at com.google.appengine.tools.development.ApiProxyLocalImpl$2.run(ApiProxyLocalImpl.java:562)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.google.appengine.tools.development.ApiProxyLocalImpl.getService(ApiProxyLocalImpl.java:561)
    at com.google.appengine.tools.development.ApiProxyLocalImpl.resolveDeadline(ApiProxyLocalImpl.java:233)
    at com.google.appengine.tools.development.ApiProxyLocalImpl.doAsyncCall(ApiProxyLocalImpl.java:214)
    at com.google.appengine.tools.development.ApiProxyLocalImpl.makeSyncCall(ApiProxyLocalImpl.java:147)
    at com.googlecode.objectify.cache.TriggerFutureHook.makeSyncCall(TriggerFutureHook.java:154)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:112)
    at com.googlecode.objectify.cache.TriggerFutureHook$1.invoke(TriggerFutureHook.java:212)
    at $Proxy35.makeSyncCall(UnkNown Source)
    at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:101)
    at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:50)
    at com.google.appengine.api.channel.ChannelServiceImpl.createChannelImpl(ChannelServiceImpl.java:59)
    at com.google.appengine.api.channel.ChannelServiceImpl.createChannel(ChannelServiceImpl.java:34)
    at com.klawt.server.NavLinkApp.setupUser(NavLinkApp.java:71)
    at com.klawt.server.NavLinkApp.handle(NavLinkApp.java:47)
    at org.restlet.routing.Filter.doHandle(Filter.java:159)
    at org.restlet.routing.Filter.handle(Filter.java:206)
    at org.restlet.routing.Filter.doHandle(Filter.java:159)
    at org.restlet.routing.Filter.handle(Filter.java:206)
    at org.restlet.routing.Router.doHandle(Router.java:431)
    at org.restlet.routing.Router.handle(Router.java:648)
    at org.restlet.routing.Filter.doHandle(Filter.java:159)
    at org.restlet.routing.Filter.handle(Filter.java:206)
    at org.restlet.routing.Filter.doHandle(Filter.java:159)
    at org.restlet.routing.Filter.handle(Filter.java:206)
    at org.restlet.routing.Filter.doHandle(Filter.java:159)
    at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:154)
    at org.restlet.routing.Filter.handle(Filter.java:206)
    at org.restlet.routing.Filter.doHandle(Filter.java:159)
    at org.restlet.routing.Filter.handle(Filter.java:206)
    at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:211)
    at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:84)
    at org.restlet.Application.handle(Application.java:377)
    at org.restlet.routing.Filter.doHandle(Filter.java:159)
    at org.restlet.routing.Filter.handle(Filter.java:206)
    at org.restlet.routing.Router.doHandle(Router.java:431)
    at org.restlet.routing.Router.handle(Router.java:648)
    at org.restlet.routing.Filter.doHandle(Filter.java:159)
    at org.restlet.routing.Filter.handle(Filter.java:206)
    at org.restlet.routing.Router.doHandle(Router.java:431)
    at org.restlet.routing.Router.handle(Router.java:648)
    at org.restlet.routing.Filter.doHandle(Filter.java:159)
    at org.restlet.routing.Filter.handle(Filter.java:206)
    at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:211)
    at org.restlet.Component.handle(Component.java:392)
    at org.restlet.Server.handle(Server.java:516)
    at org.restlet.engine.ServerHelper.handle(ServerHelper.java:72)
    at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:152)
    at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1089)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:78)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:369)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.httpconnection.handleRequest(httpconnection.java:542)
    at org.mortbay.jetty.httpconnection$RequestHandler.headerComplete(httpconnection.java:923)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
    at org.mortbay.jetty.httpconnection.handle(httpconnection.java:404)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.security.util")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
    at java.security.AccessController.checkPermission(AccessController.java:555)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:252)
    at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1529)
    at java.lang.classLoader$1.run(ClassLoader.java:490)
    at java.lang.classLoader$1.run(ClassLoader.java:488)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.lang.classLoader.checkPackageAccess(ClassLoader.java:488)
    at sun.security.pkcs11.SunPKCS11.<clinit>(SunPKCS11.java:63)
    ... 121 more

解决方法:

尝试不同的Appengine SDK版本后,在openJDK 6& 7我终于删除了openJDK并下载了Oracle JDK 6,设置了JAVA_HOME和PATH.

Oracle JDK有效!

所以这是一个Ubuntu 12.04 / OpenJDK问题.

Convert arabic“unicode” content html or xml to pdf using itextsharp

Convert arabic“unicode” content html or xml to pdf using itextsharp

I am trying to create reports in my asp.net MVC3 application after a lot of
search I found many blog posts talks about ITextSharp to convert my
Html/Razor to Pdf I am trying to parse razor view to get PDf as follows

 public void Render(ViewContext viewContext,TextWriter writer)
    {
        var doc = new Document();

        // associate output with response stream
        var pdfWriter = PdfWriter.GetInstance(doc,viewContext.HttpContext.Response.OutputStream);
        pdfWriter.CloseStream = false;

        viewContext.HttpContext.Response.ContentType = "application/pdf";
        viewContext.HttpContext.Response.ContentEncoding = System.Text.Encoding.UTF8;

        // generate view into string
        var sb = new System.Text.StringBuilder();
        TextWriter tw = new System.IO.StringWriter(sb);
        _result.View.Render(viewContext,tw);
        var resultCache = sb.ToString();

        //Path to our font
        string arialuniTff = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts),"ARIALUNI.TTF");
        //Register the font with iTextSharp
        iTextSharp.text.FontFactory.Register(arialuniTff);

        //Create a new stylesheet
        iTextSharp.text.html.simpleparser.StyleSheet ST = new iTextSharp.text.html.simpleparser.StyleSheet();
        //Set the default body font to our registered font's internal name
        ST.LoadTagStyle(HtmlTags.BODY,HtmlTags.FACE,"Arial Unicode MS");
        //Set the default encoding to support Unicode characters
        ST.LoadTagStyle(HtmlTags.BODY,HtmlTags.ENCODING,BaseFont.IDENTITY_H);


        //Parse our HTML using the stylesheet created above
        List<IElement> list = HTMLWorker.ParseToList(new StringReader(resultCache),ST);
        doc.Open();
        //Loop through each element,don't bother wrapping in P tags
        foreach (var element in list)
        {
            doc.Add(element);
        }

        doc.Close();
        pdfWriter.Close();
    }

the result of that code is enter image description
here

which is not correct,the arabic word should be “محمد”. so what I need is to
set document direction to be from right to left

EDIT Thanks to @Romulus

I made a little changes to his code i just replaced adding element to
PdfPCell to looping on my Html and set some attributes

 //Loop through each element,don't bother wrapping in P tags
        foreach (var element in list)
        {
            //Create a cell and add text to it
            //PdfPCell text = new PdfPCell(new Phrase(element.ToString(),f));

            //Ensure that wrapping is on,otherwise Right to Left text will not display
            //text.NoWrap = false;

            //Add the cell to the table
            //table.AddCell(text);
            if (element is iTextSharp.text.pdf.PdfPTable)
            {
                table = (iTextSharp.text.pdf.PdfPTable)element;
                table.DefaultCell.NoWrap = false;
                table.RunDirection = PdfWriter.RUN_DIRECTION_RTL;
                foreach (PdfPRow row in table.Rows)
                {
                    foreach (PdfPCell cell in row.GetCells())
                    {
                        cell.RunDirection = PdfWriter.RUN_DIRECTION_RTL;
                        cell.NoWrap = false;
                    }
                }
            }

        }

That’s working for me now well Thanks :)

CSS之background-image:在一个元素中设置给定数量的背景图片

CSS之background-image:在一个元素中设置给定数量的背景图片

众所周知,可以通过设置background-repeat的值来改变背景图片的重复次数。但有一个问题,background-repeat的值不是让图片只有1个,就是让图片铺满。如果只想设置给定数量的图片该怎么办?以2个为例,请看代码:

 1 h1 {
2     background-image: url(logo.jpg), url(logo.jpg);
3     background-repeat: no-repeat;
4     background-position: left, right;
5 }                  

这样,就实现了<h1>元素的最左边有一个logo.jpg、最右边也有一个logo.jpg。
设置3个、4个、5个等任意给定数量的方法同理。
转载于猿2048:➜《CSS之background-image:在一个元素中设置给定数量的背景图片》

Error parsing XML: An invalid XML character (Unicode:0x1f) was found

Error parsing XML: An invalid XML character (Unicode:0x1f) was found

出现错误:

Error parsing XML:XML InputStream(56) An invalid XML character (Unicode:0x1f) was found in the value of attribute "column" and element is "property".


问题出现的场景:

在springmvc框架中,新增一个表,然后利用hibernate创建一个对应的实体类和.hbm.xml文件,最后在applicationContext.xml中配置完该.hbm.xml文件后运行程序,出现上述红色错误。


问题解决过程:

解读错误消息,说是该.hbm.xml文件中一个property元素的column属性发现非法字符。但是在myeclipse中查看该.hbm.xml配置文件一切正常,也没有什么非法字符。我将该文件中的内容全部注释掉都不行,依然报该错误,可见只要文件中存在非法字符,无论注释与否,都会识别并报错。几经折腾,最后无意将该文件内容全部复制到notepad++软件中,结果非法字符原形毕露,发现在某个property的column属性中果然后"US"字样的非法字符。按照正常逻辑,我在notepad++中将非法字符删除,然后全部复制回myeclipse中,保存再次运行,一起OK。

备注:在记事本中显示不出来非法字符。

今天的关于java – Track.getSimilar:在元素中找到了无效的XML字符(Unicode:0x3)…在文档的元素中找到无效的xml字符的分享已经结束,谢谢您的关注,如果想了解更多关于Appengine DevMode:拒绝访问(“java.lang.RuntimePermission”“accessClassInPackage.sun.security.util”)、Convert arabic“unicode” content html or xml to pdf using itextsharp、CSS之background-image:在一个元素中设置给定数量的背景图片、Error parsing XML: An invalid XML character (Unicode:0x1f) was found的相关知识,请在本站进行查询。

本文标签: