如果您想了解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字符)
- 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
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”)
我将我的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
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
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:在一个元素中设置给定数量的背景图片
众所周知,可以通过设置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: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的相关知识,请在本站进行查询。
本文标签: