JavaMail not able to display html body - java

I am having trouble getting the SimpleClient sample app that comes with JavaMail, to work. Emails with plain text bodies display just fine in the viewer. But for html bodies it fails to find the appropriate content viewer. It's the line Object bean = dh.getBean(ci); at around line 205 in MessageViewer.getBodyComponent(), that results in bean getting assigned a null pointer, that causes the problem.
Earlier today I asked for help finding the source for javax.activation, hoping I could figure out the problem. But unfortunately when I step into that code, it goes to the wrong line in the source file, meaning I can't for the life of me figure out what is going wrong!
[I know nothing about Java Beans; this could be my problem. Please feel free to recommend that I do some learning about this technology :-) I haven't yet, for the simple reason that I have other things to do with my time. If, however, it's necessary, then I'll do it :-) ]
Has anyone else had this problem and how did you solve it?

The JavaBeans Activation Framework (JAF) has been included in the JDK since JDK 1.6. You can find the source code in the OpenJDK repository for recent versions.
When JAF was included in the JDK, none of the sample viewers were included. You can download the standalone JAF 1.1.1 release, which includes the sample viewers, and include it in your CLASSPATH.
And, just to be really clear, these are sample viewers, perhaps good enough for the JavaMail sample programs, but not good for much else. In particular, the text viewer displays all text as if it were plain text. You could get the same effect by changing the simple.mailcap file included with the SimpleClient to use "text/*".

Related

Exactly which JOGL files to use for windows

I don't know Exaclty wich file I should get. I think I finally found the site but there like a list of 500 different types of files on there.
I'm using NetBeans IDE for my programming, so that's Java code and I would like a step by step (Clear to understand) tutorial on exactly which files I should currently download(Include exact link if need be), How to set it up(the jars if there are any because I tend to see a lot of zip files w/ no jars in them), and how to set it up in Netbeans.
If anyone has an Idea, write the solution down below.
The instructions to setup JOGL for Netbeans IDE with some screen captures and some detailed explanations are on our wiki:
http://jogamp.org/wiki/index.php/Setting_up_a_JogAmp_project_in_your_favorite_IDE#NetBeans_IDE
It's a lot better than tinkering our JARs on Maven Central with the risk of using the wrong files.
Ok, so after more in depth digging, I found not only the JOGL jars, but every single jar out there in one site. To top it off, more than 75% of the jars had a modified date in 2015, so there all up to date here's the website,
http://search.maven.org/#search|ga|1|jogamp
Caution Be sure to really read what your downloading b/c cause on potential mismatch and you could potentially screw up your computer!

Java: Parse JavaScript & Flag Errors

I've been having terrible luck trying to get this to work, so I'm hopeful someone can help here.
In Java, I need to be able to take an HTML page with JavaScript within it and detect any JavaScript errors without, preferably without executing the JavaScript code.
I found this article:
Javascript parser for Java
And I've attempted to figure out how I'm supposed to use Caja to do this, but I'm having a difficult time finding any documentation with working examples of anything close to what I'm doing.
As a result I took a look at Nashorn also referenced in that article. I found a few examples which show how to execute JavaScript code from Java, but this doesn't process the whole HTML page. Even then, the execution doesn't seem to include the ability to validate common JavaScript functions (e.g. It hadn't heard of "alert").
Can anyone recommend something that might be able to do what I want, and point me in the right direction for their documentation or give me an example?
jshint as a standalone product seems to be a good fit for this:
it can run in java inside rhino (see https://github.com/jshint/jshint/)
a nodejs package exists (see https://www.npmjs.com/package/jshint)
it works with nashorn but it's quite tricky
I will only cover the technical difficulties around 3rd solution as I finally managed to make it work too...
Spoiler alert: "alert()" is not detected yet... Solution nb 2 will help there...
You first need to grab this specific release of jshint: https://github.com/jshint/jshint/releases/tag/2.4.4
Anything later than v2.7.0 will fail for now and I personally gave up patching intensively prototypes and namespaces... Releases from v2.4.4 until v2.6.3 work without modification but are limited in functionalities.
In the release notes, it's specifically written that "support for the Nashorn JavaScript engine" is working on this release. I'm using JDK8 nashorn 1.8.0_45 for this test.
Next step is to extract from this release this single file jshint-2.4.4/dist/jshint-rhino.js
Now you need to run nashorn/jjs in scripting mode and you need to be specific about the single file you wish to verify. In solution 2 (nodejs based) you can do multiple files or a complete hierarchy below a folder...
Create a simple file file.js:
function(){}
Now run the following command (please note the presence of -- ):
jjs -scripting jshint-rhino.js -- file.js
This will give you the following output:
Missing name in function declaration. (file.js:1:9)
> function(){}
So this covers the how to run jshint in a simple manner with nashorn... With the 3rd solution, at least you can find missing semicolons and several typical errors. But it's not a silver bullet and to me it's not a real alternative.
My personal preference would be to stick to solution 2 only. If you've the possibility to install either nodejs or iojs on your dev platform, go and grab https://www.npmjs.com/package/jshint. Not only will you be able to do more than the 3rd solution, you'll also be able to configure a jshintrc file as described at http://jshint.com/docs/

Cannot use com.sun.net.httpserver - Java 8

I am trying to create a simple server program to handle http requests. So with minimum search, I stumbled upon the oracle documentation for the httpserver class, inside the com.sun.net package. I'm relatively new to Java, so I thought that a class "sponsored" by Oracle itself would be included in the default libraries.
Unfortunately, that was not the case. After a lot of trials for possible syntax-import errors (various kinds of error arouse) and having installed the Oracle JDK 8 correctly on my Ubuntu machine, the compiler said that the package did not exist. What do I have to do to get the package to work?
I did finally make it work. Mostly, it was a misunderstanding from my place, since I only imported up to a point that was wrong - that is,I only imported com.sun.net.httpserver, thinking the latter part was the actual class I wanted, but it was merely the package name. So then I proceeded to import com.sun.net.httpserver.HttpServer, then the rest of my classes. Finally a com.sun.net.httpserver.* would work perfectly fine. It seems stupid now that I figured it out, but I think I will leave it here just in case anyone has the same misunderstanding - I already see 1 favourite on the question. And of course, as others have pointed out, the package is not part of the standard java libraries, but I used Oracle Java specifically for that.
P.S. The class is really useful, unlike what the other answer implies, but now I have stumbled upon another problem regarding reading the request body right, something that might have to do with the locale of the client-server, and I will now procced to search that.. Just a warning for anyone thinking of using the package.
Firstly try to avoid com.sun.xxx package, as those are internalls of Oracle/Sun java implementation.
Secondly, why not use libraries from apache ? See https://hc.apache.org/
EDITED:
You can also look on http://sparkjava.com/ , not tested but examples looks promising and they are using Java 8 nice features.

How to properly type javascript codes in NetBeans 7.4?

I am using netbeans 7.4 which supports HTML & PHP only. I have a javascript tutorial and I need to practice those codes in an IDE. (I am absolutely new to javascript). I created a new project (Project type is HTML5, not PHP). Then under source files I created a new javascript file. Then I started my coding.Errors are not shown in my codes when I type something wrong. I intentionally typed some code (dfd.rt())which does not exist at all, but no error is shown. Why is that? In addition I cannot see that much of good intellisense in my javascript files whereas I could get a lot of assistance from the IDE when I typed PHP codes. For examples in PHP when I type ec, IDE showed me echo, but in JS nothing is shown when I type document for doucment.write().
I feel that I am not using javascript files correctly in the IDE.
Can anybody show me correct steps to create a javascript project and type proper javascript codes in netbeans which will underline error codes in red and provide good support in intellisense
P:S - I searched in SO and found out some plugin needs to be installed, but I guess I have already necessary stuff installed. That is why they showed me javascript templates under source files. Correct me if I am wrong
Netbeans has a plugin for JSLint - Which technically is a code quality tool not a debugger but I find it very useful for JS. It will show you probably more errors and code quality suggestions than you'll need but you can configure it to your taste. check it out. http://plugins.netbeans.org/plugin/40893/jslint

How to make javadoc.jar take priority over javadoc in sources.jar?

I have a limited selection of original source code overlayed onto decompiled code in a sources jar.
This is great as it gives me easy ability to drill down into the code when debugging however it seems to have a side effect of disabling the javadoc from the associated javadoc.jar from working in eclipse despite me having a separate javadoc.jar file with the javadoc in it.
I assume this happening because eclipse is finding the 'source code' and assumes that all the javadoc is in the source and therefore there is no need to check the javadoc.jar file.
I'd like to be able to tell eclipse (preferably using maven) to not use the sources.jar for javadoc and only use the javadoc.jar. I would still like to use the sources.jar for source code.
I have assumed that eclipse is preferring to display javadoc from sources and may be wrong so please correct me if that is the case.
Also, I may just be doing something simple the wrong way so please let me know if that is the case.
I am hunting for the same thing. I have some source jars I created with jad (and since they are decompiled, they have no JavaDoc in them) and attached as source attachments. I also have the JavaDoc attached. It seems like it is a limitation of Eclipse. It will scrape the JavaDoc from the sources and display it (even if its empty) rather than looking to the JavaDoc. I wish it would notice that the JavaDoc was missing from the source and try the JavaDoc location instead. If I don't find a solution, I'm going to post the question and/or feature request over at the Eclipse site.
One workaround might be to integrate into the java decompiler (like jad) the ability to examine both the source an the javadoc, and put the javadoc back into the source. It would also then have parameter names for methods available too so it could put those back in. Lots of people have suggested this, but I cannot find anyone who has done it.
A couple of caveats. First, jad hasn't been maintained in a long time. The JD-Core/JD-Eclips website has vanished. And I have not found a better Java decompiler than jad. What happened to all the great Java decompiling gurus and solutions? Second, it might be tricky with the "align for debugging" feature to make sure the JavaDoc comments don't take up more room than is available.

Categories