Cannot resolve PIM in WSDD 5.7.1
I installed PIM package on WSDD 5.7.
I get unresolved external error when I include the following line in my source code.
import javax.microedition.pim.*;
Thanks in advance
Hai VijayJadhav,
Have you included the PDAP-PIM library to your project. If not, do so and then check
To include those libraries, please follow the following
1. From the Project menu, select Properties
2. select Java Build Path from left side of the window
3. select Library tab from the right side of the window
4. Click Add Library button
5. select WebSphere Everyplace Technology Library and click next
6. Unfold 2.2.0 folder and then select WTL PDAP-PIM
7. click Finish
8. Click Add Library button
9. select J2ME Library and click next
10. Unfold 2.2.0 folder and then select JCL MIDP 2.0
11. click Finish
12. click OK
Now try your application. Hope this helps :-)
Regards,
-Hemant
Similar Messages
-
Problem with DNS - ping/Safari cannot resolve, but host/dig work OK
Hi All,
Have a weird problem with DNS which is a bit similar to the following ones:
http://discussions.info.apple.com/thread.jspa?threadID=2190208
http://forums.macrumors.com/showthread.php?t=337942
I connect with remote internal network via OpenVPN and from time to time (yes, intermittent problem :)) internal DNS names cannot be resolved.
When it happens I can still resolve names using host or dig utilities, but applications (like Safari) and ping cannot resolve them.
resolv.conf has proper DNS server set:
*$ cat /etc/resolv.conf*
*# Mac OS X Notice*
*# This file is not used by the host name and address resolution*
*# or the DNS query routing mechanisms used by most processes on*
*# this Mac OS X system.*
*# This file is automatically generated.*
*domain openvpn*
*search openvpn*
*nameserver 10.0.0.1*
More than that - it can resolve those internal names when queried directly, for example using host:
*$ host YYY.XXX.ru 10.0.0.1*
*Using domain server:*
*Name: 10.0.0.1*
*Address: 10.0.0.1#53*
Aliases:
*YYY.XXX.ru has address 192.168.x.y*
but at the same time ping reports "*Unknown host*":
*$ ping YYY.XXX.ru*
*ping: cannot resolve YYY.XXX.ru: Unknown host*
I tried "*dscacheutil -flushcache*" and it did not help. Also tried to comment out domain and search directives in resolv.conf and it did not help as well (and actually it should not matter).
Any ideas why this can happen and what else can I check when it happens again?
Thanks!I have the same issue. It cropped up after I installed updates to MS Office 2008 and Firefox in which I also saw issues with the icons disappearing in the dock of the applications that were open when I started the Office update. I rebooted to try to get them back, but ended up deleting them and restoring from the Applications folder. I don't know if that's a red herring or not, but I generally try to figure out what has recently changed that may cause something to suddenly start failing.
I'd been working successfully all morning before it started acting up. Switching from wifi to cat5 had no effect.
@realaaa, were you able to resolve without a major undertaking, like reinstalling your OS?
pnmbp:~ pn$ dig goo.gl
; <<>> DiG 9.6.0-APPLE-P2 <<>> goo.gl
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40996
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;goo.gl. IN A
;; ANSWER SECTION:
goo.gl. 140 IN A 74.125.45.139
goo.gl. 140 IN A 74.125.45.102
goo.gl. 140 IN A 74.125.45.113
goo.gl. 140 IN A 74.125.45.138
goo.gl. 140 IN A 74.125.45.101
goo.gl. 140 IN A 74.125.45.100
;; Query time: 27 msec
;; SERVER: 192.168.2.1#53(192.168.2.1)
;; WHEN: Mon Dec 13 16:59:34 2010
;; MSG SIZE rcvd: 120
pnmbp:~ pn$ ping goo.gl
ping: cannot resolve goo.gl: Unknown host
pnmbp:~ pn$ curl <a class="jive-link-external-small" href="http://">http://goo.gl
curl: (6) Couldn't resolve host 'goo.gl'
pnmbp:~ pn$ host goo.gl
goo.gl has address 74.125.45.100
goo.gl has address 74.125.45.101
goo.gl has address 74.125.45.138
goo.gl has address 74.125.45.113
goo.gl has address 74.125.45.102
goo.gl has address 74.125.45.139
pnmbp:~ pn$ -
Visual Studio 2012 cannot resolve symbol or Errors control is not a member of class
Visual Studio 2012 Web Site Project (Note not a Web application, so there are not Designer.vb files) > Site works perfectly fine and using IIS and attaching to IIS to debug code.
However, if I try to build the site inside of Visual Studio I am getting lots of Errors ‘pnlName’ is not a member of ‘Page_Name’ In the code behind I am getting errors ‘Cannot resolve symbol ‘pnlName’
.ascx Page
<li style="margin-right:0;" id="pnlName" runat="server"><a href="/cart" title="Checkout" class="global-checkout">Checkout</a></li>
.ascx.vb page
Me.pnlName.Attributes.Remove("style")
I have cleaned, rebuild and nothing gets rid of these errors, but again the site works as designed, but I would like to launch and debug inside of Visual Studio.
Moojjoo MCP, MCTS
MCP Virtual Business Card
http://moojjoo.blogspot.comCor,
What I am stating is this is a solution using the Web Site Project instead of a
Web Application Project.
Web Site projects do not require Designer.vb files, Web Application Projects add Designer.vb files in the solution.
Background: I have been hired to support a very successful e-commerce site that was built by a 3rd party vendor (I had no input on the contract or specification, because I would have went with
MVC). The site works 100% correctly, however from my 2003 - 2015 experience with Visual Studio and Web Development being in Web Forms and MVC I have always built ASP.NET Solutions using the Web Application Project Templates, which compiles the code down
to .dlls.
A Web Site project does not compile the code, but simply uses the .vb files and they have to be migrated to the server with the .aspx files. http://msdn.microsoft.com/en-us/library/dd547590%28v=vs.110%29.aspx
Currently the only way I can debug this Solution is to attach to the w3wp.exe process running locally on my work station.
The Solution is comprised of two Web Sites, which I cannot get it to compile because of the following errors -
'webServerControlName' is not a member of '(Protected Code Behind Class Name)' I am reaching out to the MSDN community to see if anyone has experienced this issue with
Web Site Projects.
I hope that clears up the Project Type question.
Moojjoo MCP, MCTS
MCP Virtual Business Card
http://moojjoo.blogspot.com -
Invoking a web service - cannot resolve method parameter
I am getting a failure trying to invoking a method called sl_Access on a web service.
(Same code worked in Workshop 7.1, but fails in Workshop 8.0. The WDSL has not
changed.) WLW is not able to revolve a method parameter called piCustNo. The service
call works in WLW 7.1, but not 8.0.
Any insight on how to fix this problem?
The service call
private AnonType_sl_AccessResponse response = null;
nlastid = response.piLastId;
the service definition from wsdlControl.jcx ----
* @jc:protocol form-post="false" form-get="false" http-soap="true"
public AnonType_sl_AccessResponse sl_Access (int piCustno);
console error output -----
Submitted at Wednesday, October 8, 2003 2:15:22 PM EDT
Exception in sl_Access
com.bea.control.ServiceControlException:
SOAP-ENV:Client
An error was detected in the Web Service request. (10894)
Cannot resolve method sl_Access parameter ns:piCustno (10933)e91a6247e9b693c3:-1b6d127:f811fed2db:-8000#17
at com.bea.wlw.runtime.core.control.ServiceControlImpl.invoke(ServiceControlImpl.jcs:846)
at com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(DispMethod.java:359)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:420)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:393)
at com.bea.wlw.runtime.jcs.container.JcsProxy.invoke(JcsProxy.java:387)
at $Proxy11.sl_Access(Unknown Source)
at com.ovid.service.AccessService.getRepl(AccessService.java:93)
at com.ovid.service.AccessService.processBatch(AccessService.java:71)
at Controller.runAccess(Controller.jws:399)see:
http://newsgroups.bea.com/cgi-bin/dnewsweb?cmd=article&group=weblogic.developer.interest.workshop&item=1730
Joe Smith wrote:
>
I am getting a failure trying to invoking a method called sl_Access on a web service.
(Same code worked in Workshop 7.1, but fails in Workshop 8.0. The WDSL has not
changed.) WLW is not able to revolve a method parameter called piCustNo. The service
call works in WLW 7.1, but not 8.0.
Any insight on how to fix this problem?
The service call
private AnonType_sl_AccessResponse response = null;
nlastid = response.piLastId;
the service definition from wsdlControl.jcx ----
* @jc:protocol form-post="false" form-get="false" http-soap="true"
public AnonType_sl_AccessResponse sl_Access (int piCustno);
console error output -----
Submitted at Wednesday, October 8, 2003 2:15:22 PM EDT
Exception in sl_Access
com.bea.control.ServiceControlException:
SOAP-ENV:Client
An error was detected in the Web Service request. (10894)
Cannot resolve method sl_Access parameter ns:piCustno (10933)e91a6247e9b693c3:-1b6d127:f811fed2db:-8000#17
at com.bea.wlw.runtime.core.control.ServiceControlImpl.invoke(ServiceControlImpl.jcs:846)
at com.bea.wlw.runtime.core.dispatcher.DispMethod.invoke(DispMethod.java:359)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:420)
at com.bea.wlw.runtime.core.container.Invocable.invoke(Invocable.java:393)
at com.bea.wlw.runtime.jcs.container.JcsProxy.invoke(JcsProxy.java:387)
at $Proxy11.sl_Access(Unknown Source)
at com.ovid.service.AccessService.getRepl(AccessService.java:93)
at com.ovid.service.AccessService.processBatch(AccessService.java:71)
at Controller.runAccess(Controller.jws:399) -
Getting error message Cannot Resolve Symbol when trying to compile a class
Hello All -
I am getting an error message cannot resolve symbol while trying to compile a java class that calls another java class in the same package. The called class compiles fine, but the calling class generates
the following error message:
D:\Apache Tomcat 4.0\webapps\examples\WEB-INF\classes\cal>javac
ConnectionPool.java
ConnectionPool.java:158: cannot resolve symbol
symbol : class PooledConnection
location: class cal.ConnectionPool
private void addConnection(PooledConnection value) {
^
ConnectionPool.java:144: cannot resolve symbol
symbol : class PooledConnection
location: class cal.ConnectionPool
PooledConnection pcon = new PooledConnection(con);
^
ConnectionPool.java:144: cannot resolve symbol
symbol : class PooledConnection
location: class cal.ConnectionPool
PooledConnection pcon = new PooledConnection(con);
The code is listed as follows for PooledConnection.java (it compiles fine)
package cal;
import java.sql.*;
public class PooledConnection {
// Real JDBC Connection
private Connection connection = null;
// boolean flag used to determine if connection is in use
private boolean inuse = false;
// Constructor that takes the passed in JDBC Connection
// and stores it in the connection attribute.
public PooledConnection(Connection value) {
if ( value != null ) {
connection = value;
// Returns a reference to the JDBC Connection
public Connection getConnection() {
// get the JDBC Connection
return connection;
// Set the status of the PooledConnection.
public void setInUse(boolean value) {
inuse = value;
// Returns the current status of the PooledConnection.
public boolean inUse() {
return inuse;
// Close the real JDBC Connection
public void close() {
try {
connection.close();
catch (SQLException sqle) {
System.err.println(sqle.getMessage());
Now the code for ConnectionPool.java class that gives the cannot
resolve symbol error
package cal;
import java.sql.*;
import java.util.*;
public class ConnectionPool {
// JDBC Driver Name
private String driver = null;
// URL of database
private String url = null;
// Initial number of connections.
private int size = 0;
// Username
private String username = new String("");
// Password
private String password = new String("");
// Vector of JDBC Connections
private Vector pool = null;
public ConnectionPool() {
// Set the value of the JDBC Driver
public void setDriver(String value) {
if ( value != null ) {
driver = value;
// Get the value of the JDBC Driver
public String getDriver() {
return driver;
// Set the URL Pointing to the Datasource
public void setURL(String value ) {
if ( value != null ) {
url = value;
// Get the URL Pointing to the Datasource
public String getURL() {
return url;
// Set the initial number of connections
public void setSize(int value) {
if ( value > 1 ) {
size = value;
// Get the initial number of connections
public int getSize() {
return size;
// Set the username
public void setUsername(String value) {
if ( value != null ) {
username = value;
// Get the username
public String getUserName() {
return username;
// Set the password
public void setPassword(String value) {
if ( value != null ) {
password = value;
// Get the password
public String getPassword() {
return password;
// Creates and returns a connection
private Connection createConnection() throws Exception {
Connection con = null;
// Create a Connection
con = DriverManager.getConnection(url,
username, password);
return con;
// Initialize the pool
public synchronized void initializePool() throws Exception {
// Check our initial values
if ( driver == null ) {
throw new Exception("No Driver Name Specified!");
if ( url == null ) {
throw new Exception("No URL Specified!");
if ( size < 1 ) {
throw new Exception("Pool size is less than 1!");
// Create the Connections
try {
// Load the Driver class file
Class.forName(driver);
// Create Connections based on the size member
for ( int x = 0; x < size; x++ ) {
Connection con = createConnection();
if ( con != null ) {
// Create a PooledConnection to encapsulate the
// real JDBC Connection
PooledConnection pcon = new PooledConnection(con);
// Add the Connection to the pool.
addConnection(pcon);
catch (Exception e) {
System.err.println(e.getMessage());
throw new Exception(e.getMessage());
// Adds the PooledConnection to the pool
private void addConnection(PooledConnection value) {
// If the pool is null, create a new vector
// with the initial size of "size"
if ( pool == null ) {
pool = new Vector(size);
// Add the PooledConnection Object to the vector
pool.addElement(value);
public synchronized void releaseConnection(Connection con) {
// find the PooledConnection Object
for ( int x = 0; x < pool.size(); x++ ) {
PooledConnection pcon =
(PooledConnection)pool.elementAt(x);
// Check for correct Connection
if ( pcon.getConnection() == con ) {
System.err.println("Releasing Connection " + x);
// Set its inuse attribute to false, which
// releases it for use
pcon.setInUse(false);
break;
// Find an available connection
public synchronized Connection getConnection()
throws Exception {
PooledConnection pcon = null;
// find a connection not in use
for ( int x = 0; x < pool.size(); x++ ) {
pcon = (PooledConnection)pool.elementAt(x);
// Check to see if the Connection is in use
if ( pcon.inUse() == false ) {
// Mark it as in use
pcon.setInUse(true);
// return the JDBC Connection stored in the
// PooledConnection object
return pcon.getConnection();
// Could not find a free connection,
// create and add a new one
try {
// Create a new JDBC Connection
Connection con = createConnection();
// Create a new PooledConnection, passing it the JDBC
// Connection
pcon = new PooledConnection(con);
// Mark the connection as in use
pcon.setInUse(true);
// Add the new PooledConnection object to the pool
pool.addElement(pcon);
catch (Exception e) {
System.err.println(e.getMessage());
throw new Exception(e.getMessage());
// return the new Connection
return pcon.getConnection();
// When shutting down the pool, you need to first empty it.
public synchronized void emptyPool() {
// Iterate over the entire pool closing the
// JDBC Connections.
for ( int x = 0; x < pool.size(); x++ ) {
System.err.println("Closing JDBC Connection " + x);
PooledConnection pcon =
(PooledConnection)pool.elementAt(x);
// If the PooledConnection is not in use, close it
if ( pcon.inUse() == false ) {
pcon.close();
else {
// If it is still in use, sleep for 30 seconds and
// force close.
try {
java.lang.Thread.sleep(30000);
pcon.close();
catch (InterruptedException ie) {
System.err.println(ie.getMessage());
I am using Sun JDK Version 1.3.0_02" and Apache/Tomcat 4.0. Both the calling and the called class are in the same directory.
Any help would be greatly appreciated.
tnx..
addiIs ConnectionPool in this "cal" package as well as PooledConnection? From the directory you are compiling from it appears that it is. If it is, then you are compiling it incorrectly. To compile ConnectionPool (and PooledConnection similarly), you must change the current directory to the one that contains cal and type
javac cal/ConnectionPool. -
Missing method body and cannot resolve symbol
I keep getting these two errors when trying to compile. I know that I need to call my fibonacci and factorial functions from the main function. Is this why I am getting the missing method body error? How do I correct this?
Am I getting the cannot resolve symbol because I have to set the num and fact to equal something?
Thanks
public class Firstassignment
public static void main(String[]args)
System.out.println();
public static void fibonacci(String[]args);
int even=1;
int odd=1;
while (odd<=100);
System.out.println(even);
int temp = even;
even = odd;
odd = odd + temp;
public static void factorial (String[]args);
for (int count=1;
count<=num;
count++);
fact = fact * count;
outputbox.printLine("Factorial of" + num + "is" + fact);Hey... :o)
the problem is that you've put semicolons at the end of the function signature, like this:
public static void fibonacci(String[]args);
}that should happen only when the function is abstract... so ur function should actually look like this:
public static void fibonacci(String[]args)
}also, i think you've missed out on the declarations (like what are fact and num??).... -
Compc: cannot resolve mx:Object to a component implementation
Hi,
I need to migrate a component library to Flex 3.0 but i am
running into problems with one simple component when trying to
build the swc by the compc command line tool from within an ant
script. In FB3.0 the library is created as expected without any
errors. So here is my component:
quote:
<mx:ApplicationToolbar xmlns:mx="
http://www.adobe.com/2006/mxml".....>
<mx:Object id="xyz">
</mx:Object>
</mx:ApplicationToolbar>
Using flex 3.0 compc I get the mentioned error:
"cannot resolve <mx:Object id="xyz" to a component
implementation"
What is wrong? Why the compiler does not complain when using
FB 3.0 ?
(Compiling with flex 2.0.1 compc works fine too)
Hope someone can help me.
Thanks in advance,
Andreas.Hi,
Object is a top-level class, so i do not have to import it.
Fortunataly, I found the solution. I had to include the
following into my ant build script:
quote:
<compc ...>
<load-config
filename="${FLEX_HOME}/frameworks/flex-config.xml"/>
</compc>
Now the library is compiled as expected! -
"cannot resolve symbol" in a Timer !!!Please Help!!!
I am doing a program for a class which involves timers. I am using JCreator and when i try to construct a new timer, the compiler points to the "new" in the line:
Timer T1=new Timer(interval, ActionListener);
^
This is what it looks like and the error reads: cannot resolve symbol; constructor Timer.
please tell me if yiou have any information or suggestions as to how this error might be remedied.Sure, here it is:
import java.awt.event.*;
import javax.swing.Timer;
import javax.swing.JOptionPane;
import java.util.*;
interface ActionListener
void actionPerformed(ActionEvent event);
class Ploid
public static void main(String[] args)
class Car implements ActionListener
int mpg=30;
int mph=35;
int gtank=20;
int interval;
int changer;
int totalmiles;
Car(int x)
interval=x;
public void actionPerformed(ActionEvent event)
for(int c=0;c<(interval/1000);c++)
totalmiles=totalmiles+mph;
int hyt=mpg*gtank;
if(totalmiles>hyt)
int y=totalmiles-hyt;
totalmiles=totalmiles-y;
System.out.println(totalmiles);
else
System.out.println(totalmiles);
class SUV implements ActionListener
int mpg=15;
int mph=55;
int gtank=30;
int interval;
int changer;
int totalmiles;
SUV(int x)
interval=x;
public void actionPerformed(ActionEvent event)
for(int c=0;c<(interval/1000);c++)
totalmiles=totalmiles+mph;
int hyt=mpg*gtank;
if(totalmiles>hyt)
int y=totalmiles-hyt;
totalmiles=totalmiles-y;
System.out.println(totalmiles);
else
System.out.println(totalmiles);
class Semi implements ActionListener
int mpg=60;
int mph=80;
int gtank=50;
int interval;
int changer;
int totalmiles;
Semi(int x)
interval=x;
public void actionPerformed(ActionEvent event)
for(int c=0;c<(interval/1000);c++)
totalmiles=totalmiles+mph;
int hyt=mpg*gtank;
if(totalmiles>hyt)
int y=totalmiles-hyt;
totalmiles=totalmiles-y;
System.out.println(totalmiles);
else
System.out.println(totalmiles);
String flag="y";
String trav=JOptionPane.showInputDialog("How long do you want to drive?(1000=1 hour)");
int t1=Integer.parseInt(trav);
Car listen=new Car(t1);
SUV listener2=new SUV(t1);
Semi listener3=new Semi(t1);
final int t2=t1/1000;
final int t3=t1/t2;
ActionListener listener=null;
Timer T1=new Timer(t3, listener);
Timer T2=new Timer(t3, listener);
Timer T3=new Timer(t3, listener);
while(flag.equals("y"))
T1.start();
T2.start();
T3.start();
String g=JOptionPane.showInputDialog("Do you want to drive again?");
if((g.equals("y"))||(g.equals("Y")))
System.out.println("Let's Drive!");
else
flag=g;
System.exit(0);
}Here is the errors:
[errors]
A:\Ploid2.java:116: cannot resolve symbol
symbol : constructor Timer (int,ActionListener)
location: class javax.swing.Timer
Timer T1=new Timer(t3, listener);
^
A:\Ploid2.java:117: cannot resolve symbol
symbol : constructor Timer (int,ActionListener)
location: class javax.swing.Timer
Timer T2=new Timer(t3, listener);
^
A:\Ploid2.java:118: cannot resolve symbol
symbol : constructor Timer (int,ActionListener)
location: class javax.swing.Timer
Timer T3=new Timer(t3, listener);
^
3 errors
Process completed.
[errors]
****There is the source code and the errors the compiler returns. That should be more help.**** -
Gumbo in Flex builder 3: cannot resolve FxApplication to component implimentation
Hello everyone,
I've been banging my head on the keyboard over this issue for a while. I've downloaded and successfully installed 2 seperate versions of the nightly Flex Gumbo SDK 4.0.0.6831 and 4.0.0.6898 (two versions because i had first assumed that the error was a nightly bug). I've set the Flex compiler to use the new 4.0.0.6898 build and changed the Require flash player version to 10.0.0. Everything set right?
so i put this:
<Application xmlns="http://ns.adobe.com/mxml/2009" layout="absolute">
<FxButton label="Hello World" />
</Application>
and get the error at compile time: Gumbo in Flex builder 3: cannot resolve <FxApplication> to component implimentation. I've tried everything: <Application>, changed the namespaces, and more. Any other ideas?
Thank you in advance -brandonTry something like this:
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo">
<s:Button label="Hello World" />
</s:Application> -
Problem Digitally signing an xml document "Cannot resolve element"
I am trying to sign a cXML document. I try to add 3 references to the XMLSignatureFactory but when it hits the 2nd on it throws an error "Cannot resolve element with ID cXMLData". How come I can't add more than 1?
Here is the stack trace :
java.lang.RuntimeException: javax.xml.crypto.dsig.XMLSignatureException: javax.xml.crypto.URIReferenceException: com.sun.org.apache.xml.internal.security.utils.res olver.ResourceResolverException: Cannot resolve element with ID cXMLData
at com.praxair.security.b2b.CXMLDigitalSig.sign(CXMLD igitalSig.java:303)
at com.praxair.security.b2b.CXMLDigitalSig.main(CXMLD igitalSig.java:359)
Java Code:
public class CXMLDigitalSig
private XMLSignatureFactory factory;
private KeyStore keyStore;
private KeyPair keyPair;
private KeyInfo keyInfo;
private X509Certificate signingCert;
public CXMLDigitalSig()
private void loadCert() throws Exception
//String keystoreFile = config.getString(KEY_STORE_FILE);
//String password = config.getString(KEY_STORE_PASSWORD);
//String alias = config.getString(KEY_STORE_ALIAS);
String keystoreFile = "C:\\cxmlsign\\teststore";
String password = "xxxxx";
String alias = "xxxxx (thawte ssl ca)";
keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
File file = new File(keystoreFile);
FileInputStream inStream = new FileInputStream(file);
char [] passAsChar = password.toCharArray();
keyStore.load(inStream, passAsChar);
inStream.close();
String providerName = System.getProperty("jsr105Provider",
"org.jcp.xml.dsig.internal.dom.XMLDSigRI");
factory = XMLSignatureFactory.getInstance("DOM", (Provider) Class
.forName(providerName).newInstance());
KeyStore.PrivateKeyEntry entry = (KeyStore.PrivateKeyEntry) keyStore
.getEntry(alias, new KeyStore.PasswordProtection(passAsChar));
signingCert = (X509Certificate) entry.getCertificate();
keyPair = new KeyPair(entry.getCertificate().getPublicKey(),
entry.getPrivateKey());
KeyInfoFactory kFactory = factory.getKeyInfoFactory();
keyInfo = kFactory.newKeyInfo(Collections.singletonList(kFactory
.newX509Data(Collections.singletonList(entry
.getCertificate()))));
* This method returns the message digest for given certificate.
* @param cert
* @return
* @throws NoSuchAlgorithmException
* @throws CertificateEncodingException
private static String getThumbPrint(X509Certificate cert)
throws NoSuchAlgorithmException, CertificateEncodingException {
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] der = cert.getEncoded();
md.update(der);
byte[] digest = md.digest();
return hexify(digest);
private static String hexify(byte bytes[]) {
char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
StringBuffer buf = new StringBuffer(bytes.length * 2);
for (int i = 0; i < bytes.length; ++i) {
buf.append(hexDigits[(bytes[i] & 0xf0) >> 4]);
buf.append(hexDigits[bytes[i] & 0x0f]);
return buf.toString();
* Adds an enveloped signature to the given document. The signature is
* generated as per the CXML specfication outlined in the CXML user guide.
* This method creates the signature and three references and also the XADES
* information.
public void sign(Element cxmlElement, String payloadId) throws SQLException {
Reference ref1;
Reference ref2;
Reference ref3;
List<Reference> refs = new ArrayList<Reference>();
SignedInfo signedInfo;
try {
ref1 = factory.newReference("#cXMLSignedInfo",
factory.newDigestMethod(DigestMethod.SHA1, null), null,
null, null);
refs.add(ref1);
ref2 = factory.newReference("#cXMLData",
factory.newDigestMethod(DigestMethod.SHA1, null), null,
null, null);
refs.add(ref2);
ref3 = factory.newReference("#XAdESSignedProps",
factory.newDigestMethod(DigestMethod.SHA1, null));
refs.add(ref3);
signedInfo = factory.newSignedInfo(factory
.newCanonicalizationMethod(
CanonicalizationMethod.INCLUSIVE,
(C14NMethodParameterSpec) null), factory
.newSignatureMethod(SignatureMethod.RSA_SHA1, null), refs);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
} catch (InvalidAlgorithmParameterException e) {
throw new RuntimeException(e);
List<DOMStructure> xmlObjSignedInfo = new ArrayList<DOMStructure>();
Element signedInfoElement = createElement(cxmlElement,
"cXMLSignedInfo", null, null);
signedInfoElement.setAttributeNS(null, "Id", "cXMLSignedInfo");
signedInfoElement.setAttributeNS(null, "payloadID", payloadId);
signedInfoElement.setAttributeNS(null, "signatureVersion", "1.0");
DOMStructure signedInfoStruct = new DOMStructure(signedInfoElement);
xmlObjSignedInfo.add(signedInfoStruct);
String xadesNS = "http://uri.etsi.org/01903/v1.1.1#";
// Create the necessary XADES information as outlined in the CXML
// specification
Element QPElement = createElement(cxmlElement, "QualifyingProperties",
"xades", xadesNS);
QPElement.setAttributeNS("http://www.w3.org/2000/xmlns/",
"xmlns:xades", xadesNS);
QPElement.setAttributeNS(null, "Target", "#cXMLSignature");
Element SPElement = createElement(cxmlElement, "SignedProperties",
"xades", xadesNS);
SPElement.setAttributeNS(null, "Id", "XAdESSignedProps");
IdResolver.registerElementById(SPElement, "XAdESSignedProps");
QPElement.appendChild(SPElement);
Element signedSPElement = createElement(cxmlElement,
"SignedSignatureProperties", "xades", xadesNS);
Element signingTimeElement = createElement(cxmlElement, "SigningTime",
"xades", xadesNS);
SimpleDateFormat dateFormatter = new SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss");
signingTimeElement.appendChild(cxmlElement.getOwnerDocument()
.createTextNode(dateFormatter.format(new Date())));
signedSPElement.appendChild(signingTimeElement);
SPElement.appendChild(signedSPElement);
String certDigest = "";
try {
certDigest = getThumbPrint(signingCert);
} catch (CertificateEncodingException ce) {
throw new RuntimeException(ce);
} catch (NoSuchAlgorithmException ne) {
throw new RuntimeException(ne);
Element signingCertificateElement = createElement(cxmlElement,
"SigningCertificate", "xades", xadesNS);
Element certElement = createElement(cxmlElement, "Cert", "xades",
xadesNS);
Element certDigestElement = createElement(cxmlElement, "CertDigest",
"xades", xadesNS);
Element digestMethodElement = createElement(cxmlElement,
"DigestMethod", "ds", XMLSignature.XMLNS);
digestMethodElement
.setAttributeNS(null, "Algorithm", DigestMethod.SHA1);
Element digestValueElement = createElement(cxmlElement, "DigestValue",
"ds", XMLSignature.XMLNS);
digestValueElement.appendChild(cxmlElement.getOwnerDocument()
.createTextNode(certDigest));
Element issuerSerialElement = createElement(cxmlElement,
"IssuerSerial", "xades", xadesNS);
Element x509IssuerNameElement = createElement(cxmlElement,
"X509IssuerName", "ds", XMLSignature.XMLNS);
x509IssuerNameElement
.appendChild(cxmlElement.getOwnerDocument().createTextNode(
signingCert.getIssuerX500Principal().toString()));
Element x509IssuerSerialNumberElement = createElement(cxmlElement,
"X509IssuerSerialNumber", "ds", XMLSignature.XMLNS);
x509IssuerSerialNumberElement.appendChild(cxmlElement
.getOwnerDocument().createTextNode(
signingCert.getSerialNumber().toString()));
certDigestElement.appendChild(digestMethodElement);
certDigestElement.appendChild(digestValueElement);
certElement.appendChild(certDigestElement);
issuerSerialElement.appendChild(x509IssuerNameElement);
issuerSerialElement.appendChild(x509IssuerSerialNumberElement);
certElement.appendChild(issuerSerialElement);
signingCertificateElement.appendChild(certElement);
signedSPElement.appendChild(signingCertificateElement);
DOMStructure qualifPropStruct = new DOMStructure(QPElement);
List<DOMStructure> xmlObjQualifyingProperty = new ArrayList<DOMStructure>();
xmlObjQualifyingProperty.add(qualifPropStruct);
XMLObject objectSingedInfo = factory.newXMLObject(xmlObjSignedInfo,
null, null, null);
XMLObject objectQualifyingProperty = factory.newXMLObject(
xmlObjQualifyingProperty, null, null, null);
// Create the ds:object tags
List<XMLObject> objects = new ArrayList<XMLObject>();
objects.add(objectSingedInfo);
objects.add(objectQualifyingProperty);
XMLSignature signature = factory.newXMLSignature(signedInfo, keyInfo,
objects, "cXMLSignature", null);
DOMSignContext signContext = new DOMSignContext(keyPair.getPrivate(),
cxmlElement);
signContext.putNamespacePrefix(XMLSignature.XMLNS, "ds");
try {
signature.sign(signContext);
} catch (MarshalException e) {
throw new RuntimeException(e);
} catch (XMLSignatureException e) {
throw new RuntimeException(e);
private Element createElement(Element element, String tag, String prefix,
String nsURI) {
String qName = prefix == null ? tag : prefix + ":" + tag;
return element.getOwnerDocument().createElementNS(nsURI, qName);
X509Certificate getSigningCert() {
return signingCert;
private static String readFileAsString(String filePath) throws java.io.IOException
byte[] buffer = new byte[(int) new File(filePath).length()];
BufferedInputStream f = null;
try {
f = new BufferedInputStream(new FileInputStream(filePath));
f.read(buffer);
} finally {
if (f != null) {
try {
f.close();
} catch (IOException ignored) {
return new String(buffer);
public static void main(String args[])
System.out.println("start");
CXMLDigitalSig cXMLDigitalSig = new CXMLDigitalSig();
try
cXMLDigitalSig.loadCert();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
String cXML = readFileAsString("C:\\cxmlsign\\cxml.xml");
Document cxmlDocument = dbf.newDocumentBuilder()
.parse(new ByteArrayInputStream(cXML
.getBytes("UTF-8")));
System.out.println(cxmlDocument.getDocumentElement().getTagName());
cXMLDigitalSig.sign(cxmlDocument.getDocumentElement(), "55");
catch(Exception e)
//System.out.println(e.getMessage());
System.out.println(getStackTrace(e));
System.out.println("end");
public static String getStackTrace(Throwable aThrowable) {
final Writer result = new StringWriter();
final PrintWriter printWriter = new PrintWriter(result);
aThrowable.printStackTrace(printWriter);
return result.toString();
}Edited by: sabre150 on Jan 18, 2012 1:57 PM
Moderator action : added [ code ] tags to format source codeI am trying to sign a cXML document. I try to add 3 references to the XMLSignatureFactory but when it hits the 2nd on it throws an error "Cannot resolve element with ID cXMLData". How come I can't add more than 1?
Here is the stack trace :
java.lang.RuntimeException: javax.xml.crypto.dsig.XMLSignatureException: javax.xml.crypto.URIReferenceException: com.sun.org.apache.xml.internal.security.utils.res olver.ResourceResolverException: Cannot resolve element with ID cXMLData
at com.praxair.security.b2b.CXMLDigitalSig.sign(CXMLD igitalSig.java:303)
at com.praxair.security.b2b.CXMLDigitalSig.main(CXMLD igitalSig.java:359)
Java Code:
public class CXMLDigitalSig
private XMLSignatureFactory factory;
private KeyStore keyStore;
private KeyPair keyPair;
private KeyInfo keyInfo;
private X509Certificate signingCert;
public CXMLDigitalSig()
private void loadCert() throws Exception
//String keystoreFile = config.getString(KEY_STORE_FILE);
//String password = config.getString(KEY_STORE_PASSWORD);
//String alias = config.getString(KEY_STORE_ALIAS);
String keystoreFile = "C:\\cxmlsign\\teststore";
String password = "xxxxx";
String alias = "xxxxx (thawte ssl ca)";
keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
File file = new File(keystoreFile);
FileInputStream inStream = new FileInputStream(file);
char [] passAsChar = password.toCharArray();
keyStore.load(inStream, passAsChar);
inStream.close();
String providerName = System.getProperty("jsr105Provider",
"org.jcp.xml.dsig.internal.dom.XMLDSigRI");
factory = XMLSignatureFactory.getInstance("DOM", (Provider) Class
.forName(providerName).newInstance());
KeyStore.PrivateKeyEntry entry = (KeyStore.PrivateKeyEntry) keyStore
.getEntry(alias, new KeyStore.PasswordProtection(passAsChar));
signingCert = (X509Certificate) entry.getCertificate();
keyPair = new KeyPair(entry.getCertificate().getPublicKey(),
entry.getPrivateKey());
KeyInfoFactory kFactory = factory.getKeyInfoFactory();
keyInfo = kFactory.newKeyInfo(Collections.singletonList(kFactory
.newX509Data(Collections.singletonList(entry
.getCertificate()))));
* This method returns the message digest for given certificate.
* @param cert
* @return
* @throws NoSuchAlgorithmException
* @throws CertificateEncodingException
private static String getThumbPrint(X509Certificate cert)
throws NoSuchAlgorithmException, CertificateEncodingException {
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] der = cert.getEncoded();
md.update(der);
byte[] digest = md.digest();
return hexify(digest);
private static String hexify(byte bytes[]) {
char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
StringBuffer buf = new StringBuffer(bytes.length * 2);
for (int i = 0; i < bytes.length; ++i) {
buf.append(hexDigits[(bytes[i] & 0xf0) >> 4]);
buf.append(hexDigits[bytes[i] & 0x0f]);
return buf.toString();
* Adds an enveloped signature to the given document. The signature is
* generated as per the CXML specfication outlined in the CXML user guide.
* This method creates the signature and three references and also the XADES
* information.
public void sign(Element cxmlElement, String payloadId) throws SQLException {
Reference ref1;
Reference ref2;
Reference ref3;
List<Reference> refs = new ArrayList<Reference>();
SignedInfo signedInfo;
try {
ref1 = factory.newReference("#cXMLSignedInfo",
factory.newDigestMethod(DigestMethod.SHA1, null), null,
null, null);
refs.add(ref1);
ref2 = factory.newReference("#cXMLData",
factory.newDigestMethod(DigestMethod.SHA1, null), null,
null, null);
refs.add(ref2);
ref3 = factory.newReference("#XAdESSignedProps",
factory.newDigestMethod(DigestMethod.SHA1, null));
refs.add(ref3);
signedInfo = factory.newSignedInfo(factory
.newCanonicalizationMethod(
CanonicalizationMethod.INCLUSIVE,
(C14NMethodParameterSpec) null), factory
.newSignatureMethod(SignatureMethod.RSA_SHA1, null), refs);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
} catch (InvalidAlgorithmParameterException e) {
throw new RuntimeException(e);
List<DOMStructure> xmlObjSignedInfo = new ArrayList<DOMStructure>();
Element signedInfoElement = createElement(cxmlElement,
"cXMLSignedInfo", null, null);
signedInfoElement.setAttributeNS(null, "Id", "cXMLSignedInfo");
signedInfoElement.setAttributeNS(null, "payloadID", payloadId);
signedInfoElement.setAttributeNS(null, "signatureVersion", "1.0");
DOMStructure signedInfoStruct = new DOMStructure(signedInfoElement);
xmlObjSignedInfo.add(signedInfoStruct);
String xadesNS = "http://uri.etsi.org/01903/v1.1.1#";
// Create the necessary XADES information as outlined in the CXML
// specification
Element QPElement = createElement(cxmlElement, "QualifyingProperties",
"xades", xadesNS);
QPElement.setAttributeNS("http://www.w3.org/2000/xmlns/",
"xmlns:xades", xadesNS);
QPElement.setAttributeNS(null, "Target", "#cXMLSignature");
Element SPElement = createElement(cxmlElement, "SignedProperties",
"xades", xadesNS);
SPElement.setAttributeNS(null, "Id", "XAdESSignedProps");
IdResolver.registerElementById(SPElement, "XAdESSignedProps");
QPElement.appendChild(SPElement);
Element signedSPElement = createElement(cxmlElement,
"SignedSignatureProperties", "xades", xadesNS);
Element signingTimeElement = createElement(cxmlElement, "SigningTime",
"xades", xadesNS);
SimpleDateFormat dateFormatter = new SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss");
signingTimeElement.appendChild(cxmlElement.getOwnerDocument()
.createTextNode(dateFormatter.format(new Date())));
signedSPElement.appendChild(signingTimeElement);
SPElement.appendChild(signedSPElement);
String certDigest = "";
try {
certDigest = getThumbPrint(signingCert);
} catch (CertificateEncodingException ce) {
throw new RuntimeException(ce);
} catch (NoSuchAlgorithmException ne) {
throw new RuntimeException(ne);
Element signingCertificateElement = createElement(cxmlElement,
"SigningCertificate", "xades", xadesNS);
Element certElement = createElement(cxmlElement, "Cert", "xades",
xadesNS);
Element certDigestElement = createElement(cxmlElement, "CertDigest",
"xades", xadesNS);
Element digestMethodElement = createElement(cxmlElement,
"DigestMethod", "ds", XMLSignature.XMLNS);
digestMethodElement
.setAttributeNS(null, "Algorithm", DigestMethod.SHA1);
Element digestValueElement = createElement(cxmlElement, "DigestValue",
"ds", XMLSignature.XMLNS);
digestValueElement.appendChild(cxmlElement.getOwnerDocument()
.createTextNode(certDigest));
Element issuerSerialElement = createElement(cxmlElement,
"IssuerSerial", "xades", xadesNS);
Element x509IssuerNameElement = createElement(cxmlElement,
"X509IssuerName", "ds", XMLSignature.XMLNS);
x509IssuerNameElement
.appendChild(cxmlElement.getOwnerDocument().createTextNode(
signingCert.getIssuerX500Principal().toString()));
Element x509IssuerSerialNumberElement = createElement(cxmlElement,
"X509IssuerSerialNumber", "ds", XMLSignature.XMLNS);
x509IssuerSerialNumberElement.appendChild(cxmlElement
.getOwnerDocument().createTextNode(
signingCert.getSerialNumber().toString()));
certDigestElement.appendChild(digestMethodElement);
certDigestElement.appendChild(digestValueElement);
certElement.appendChild(certDigestElement);
issuerSerialElement.appendChild(x509IssuerNameElement);
issuerSerialElement.appendChild(x509IssuerSerialNumberElement);
certElement.appendChild(issuerSerialElement);
signingCertificateElement.appendChild(certElement);
signedSPElement.appendChild(signingCertificateElement);
DOMStructure qualifPropStruct = new DOMStructure(QPElement);
List<DOMStructure> xmlObjQualifyingProperty = new ArrayList<DOMStructure>();
xmlObjQualifyingProperty.add(qualifPropStruct);
XMLObject objectSingedInfo = factory.newXMLObject(xmlObjSignedInfo,
null, null, null);
XMLObject objectQualifyingProperty = factory.newXMLObject(
xmlObjQualifyingProperty, null, null, null);
// Create the ds:object tags
List<XMLObject> objects = new ArrayList<XMLObject>();
objects.add(objectSingedInfo);
objects.add(objectQualifyingProperty);
XMLSignature signature = factory.newXMLSignature(signedInfo, keyInfo,
objects, "cXMLSignature", null);
DOMSignContext signContext = new DOMSignContext(keyPair.getPrivate(),
cxmlElement);
signContext.putNamespacePrefix(XMLSignature.XMLNS, "ds");
try {
signature.sign(signContext);
} catch (MarshalException e) {
throw new RuntimeException(e);
} catch (XMLSignatureException e) {
throw new RuntimeException(e);
private Element createElement(Element element, String tag, String prefix,
String nsURI) {
String qName = prefix == null ? tag : prefix + ":" + tag;
return element.getOwnerDocument().createElementNS(nsURI, qName);
X509Certificate getSigningCert() {
return signingCert;
private static String readFileAsString(String filePath) throws java.io.IOException
byte[] buffer = new byte[(int) new File(filePath).length()];
BufferedInputStream f = null;
try {
f = new BufferedInputStream(new FileInputStream(filePath));
f.read(buffer);
} finally {
if (f != null) {
try {
f.close();
} catch (IOException ignored) {
return new String(buffer);
public static void main(String args[])
System.out.println("start");
CXMLDigitalSig cXMLDigitalSig = new CXMLDigitalSig();
try
cXMLDigitalSig.loadCert();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
String cXML = readFileAsString("C:\\cxmlsign\\cxml.xml");
Document cxmlDocument = dbf.newDocumentBuilder()
.parse(new ByteArrayInputStream(cXML
.getBytes("UTF-8")));
System.out.println(cxmlDocument.getDocumentElement().getTagName());
cXMLDigitalSig.sign(cxmlDocument.getDocumentElement(), "55");
catch(Exception e)
//System.out.println(e.getMessage());
System.out.println(getStackTrace(e));
System.out.println("end");
public static String getStackTrace(Throwable aThrowable) {
final Writer result = new StringWriter();
final PrintWriter printWriter = new PrintWriter(result);
aThrowable.printStackTrace(printWriter);
return result.toString();
}Edited by: sabre150 on Jan 18, 2012 1:57 PM
Moderator action : added [ code ] tags to format source code -
Class error - cannot resolve symbol "MyDocumentListener"
Hello,
this is a groaner I'm sure, but I don't see the problem.
Newbie-itis probably ...
I'm not concerned with what the class does, but it would be nice for the silly thing to compile!
What the heck am I missing for "MyDocumentListener" ?
C:\divelog>javac -classpath C:\ CenterPanel.java
CenterPanel.java:53: cannot resolve symbol
symbol : class MyDocumentListener
location: class divelog.CenterPanel
MyDocumentListener myDocumentListener = new MyDocumentListener(); // define the listener class
^
CenterPanel.java:53: cannot resolve symbol
symbol : class MyDocumentListener
location: class divelog.CenterPanel
MyDocumentListener myDocumentListener = new MyDocumentListener(); // define the listener class
^
2 errors
package divelog;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.lang.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.*;
import javax.swing.text.*;
public class CenterPanel extends JPanel implements ActionListener
{ // Opens class
static private final String newline = "\n";
private JTextArea comments;
private JScrollPane scrollpane;
private JButton saveButton, openButton;
private JLabel whiteshark;
private Box box;
private BufferedReader br ;
private String str;
private JTextArea instruct;
private File defaultDirectory = new File("C://divelog");
private File fileDirectory = null;
private File currentFile= null;
public CenterPanel()
{ // open constructor CenterPanel
setBackground(Color.white);
comments = new JTextArea("Enter comments, such as " +
"location, water conditions, sea life you observed," +
" and problems you may have encountered.", 15, 10);
comments.setLineWrap(true);
comments.setWrapStyleWord(true);
comments.setEditable(true);
comments.setFont(new Font("Times-Roman", Font.PLAIN, 14));
// add a document listener for changes to the text,
// query before opening a new file to decide if we need to save changes.
MyDocumentListener myDocumentListener = new MyDocumentListener(); // define the listener class
comments.getDocument().addDocumentListener(myDocumentListener); // create the reference for the class
// ------ Document listener class -----------
class MyDocumentListener implements DocumentListener {
public void insertUpdate(DocumentEvent e) {
Calculate(e);
public void removeUpdate(DocumentEvent e) {
Calculate(e);
public void changedUpdate(DocumentEvent e) {
private void Calculate(DocumentEvent e) {
// do something here
scrollpane = new JScrollPane(comments);
scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
saveButton = new JButton("Save Comments", new ImageIcon("images/Save16.gif"));
saveButton.addActionListener( this );
saveButton.setToolTipText("Click this button to save the current file.");
openButton = new JButton("Open File...", new ImageIcon("images/Open16.gif"));
openButton.addActionListener( this );
openButton.setToolTipText("Click this button to open a file.");
whiteshark = new JLabel("", new ImageIcon("images/gwhite.gif"), JLabel.CENTER);
Box boxH;
boxH = Box.createHorizontalBox();
boxH.add(openButton);
boxH.add(Box.createHorizontalStrut(15));
boxH.add(saveButton);
box = Box.createVerticalBox();
box.add(scrollpane);
box.add(Box.createVerticalStrut(10));
box.add(boxH);
box.add(Box.createVerticalStrut(15));
box.add(whiteshark);
add(box);
} // closes constructor CenterPanel
public void actionPerformed( ActionEvent evt )
{ // open method actionPerformed
JFileChooser jfc = new JFileChooser();
// these do not work !!
// -- set the file types to view --
// ExtensionFileFilter filter = new ExtensionFileFilter();
// FileFilter filter = new FileFilter();
//filter.addExtension("java");
//filter.addExtension("txt");
//filter.setDescription("Text & Java Files");
//jfc.setFileFilter(filter);
//Add a custom file filter and disable the default "Accept All" file filter.
jfc.addChoosableFileFilter(new JTFilter());
jfc.setAcceptAllFileFilterUsed(false);
// -- open the default directory --
// public void setCurrentDirectory(File dir)
// jfc.setCurrentDirectory(new File("C://divelog"));
jfc.setCurrentDirectory(defaultDirectory);
jfc.setSize(400, 300);
jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
Container parent = saveButton.getParent();
//========================= Test Button Actions ================================
//========================= Open Button ================================
if (evt.getSource() == openButton)
int choice = jfc.showOpenDialog(CenterPanel.this);
File file = jfc.getSelectedFile();
/* a: */
if (file != null && choice == JFileChooser.APPROVE_OPTION)
String filename = jfc.getSelectedFile().getAbsolutePath();
// -- compare the currentFile to the file chosen, alert of loosing any changes to currentFile --
// If (currentFile != filename)
// -- get the current directory name -------
// public File getCurrentDirectory( );
File f=new File(System.getProperty("user.dir"));
fileDirectory = jfc.getCurrentDirectory();
// -- remember the last directory used --
if (defaultDirectory != fileDirectory)
{defaultDirectory = fileDirectory;}
try
{ //opens try
comments.getLineCount( );
// -- clear the old data before importing the new file --
comments.selectAll();
comments.replaceSelection("");
// -- get the new data ---
br = new BufferedReader (new FileReader(file));
while ((str = br.readLine()) != null)
{//opens while
comments.append(str);
} //closes while
} // close try
catch (IOException ioe)
{ // open catch
comments.append(newline +"Open command not successful:" + ioe + newline);
} // close catch
// ---- display the values of the directory variables -----------------------
comments.append(
newline + "The f directory variable contains: " + f +
newline + "The fileDirectory variable contains: " + fileDirectory +
newline + "The defaultDirectory variable contains: " + defaultDirectory );
else
comments.append("Open command cancelled by user." + newline);
} //close if statement /* a: */
//========================= Save Button ================================
} else if (evt.getSource() == saveButton)
int choice = jfc.showSaveDialog(CenterPanel.this);
if (choice == JFileChooser.APPROVE_OPTION)
File fileName = jfc.getSelectedFile();
// -- get the current directory name -------
// public File getCurrentDirectory( );
File f=new File(System.getProperty("user.dir"));
fileDirectory = jfc.getCurrentDirectory();
// -- remember the last directory used --
if (defaultDirectory != fileDirectory)
{defaultDirectory = fileDirectory;}
//check for existing files. Warn users & ask if they want to overwrite
for(int i = 0; i < fileName.length(); i ++) {
File tmp = null;
tmp = (fileName);
if (tmp.exists()) // display pop-up alert
//public static int showConfirmDialog( Component parentComponent,
// Object message,
// String title,
// int optionType,
// int messageType,
// Icon icon);
int confirm = JOptionPane.showConfirmDialog(null,
fileName + " already exists on " + fileDirectory
+ "\n \nContinue?", // msg
"Warning! Overwrite File!", // title
JOptionPane.OK_CANCEL_OPTION, // buttons displayed
// JOptionPane.ERROR_MESSAGE
// JOptionPane.INFORMATION_MESSAGE
// JOptionPane.PLAIN_MESSAGE
// JOptionPane.QUESTION_MESSAGE
JOptionPane.WARNING_MESSAGE,
null);
if (confirm != JOptionPane.YES_OPTION)
{ //user cancels the file overwrite.
try {
jfc.cancelSelection();
break;
catch(Exception e) {}
// ----- Save the file if everything is OK ----------------------------
try
{ // opens try
BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
bw.write(comments.getText());
bw.flush();
bw.close();
comments.append( newline + newline + "Saving: " + fileName.getName() + "." + newline);
break;
} // closes try
catch (IOException ioe)
{ // open catch
comments.append(newline +"Save command unsuccessful:" + ioe + newline);
} // close catch
} // if exists
} //close for loop
else
comments.append("Save command cancelled by user." + newline);
} // end-if save button
} // close method actionPerformed
} //close constructor CenterPanel
} // Closes class CenterPanelThere is no way to be able to see MyDocumentListener class in the way you wrote. The reason is because MyDocumentListener class inside the constructor itself. MyDocumentListener class is an inner class, not suppose to be inside a constructor or a method. What you need to do is simple thing, just move it from inside the constructor and place it between two methods.
that's all folks
Qusay -
PLEASE HELP: cannot resolve symbol class
it's showing me the error on the following lines 7 and 9
it says cannot resolve symbol class Name and cannot resolve symbol class Phone
I also have a package name addressBook and it contains two files Entry.java and Address.java
Here is the code:
import java.io.*;
import addressBook.*;
public class AddressDr
public static void main(String[] args)throws IOException
Name name;
Address address;
Phone phone;
Entry entry;
String first, last, middle, street, city, state, zip;
int areaCode, number;
BufferedReader in;
in=new BufferedReader(new InputStreamReader(System.in));
PrintWriter outFile;
outFile=new PrintWriter(new FileWriter("Entries"));
System.out.println("Quit entered fot the first name ends the " + "application.");
System.out.print("Enter first name: ");
first=in.readLine();
while (first.compareTo("Quit") !=0)
System.out.print("Enter last name: ");
last=in.readLine();
System.out.print("Enter middle name: ");
middle=in.readLine();
name=new Name(first, last, middle);
System.out.print("Enter street address: ");
street=in.readLine();
System.out.print("Enter city: ");
city=in.readLine();
System.out.print("Enter state: ");
state=in.readLine();
System.out.print("Enter ZIP code: ");
zip=in.readLine();
address=new Address(street, city, state, zip);
System.out.print("Enter areaCode: ");
areaCode = Integer.parseInt(in.readLine());
System.out.print("Enter number: ");
number=Integer.parseInt(in.readLine());
phone=new Phone(areaCode, number);
entry= new Entry(name, address, phone);
entry.writeToFile(outFile);
System.out.print("Enter first name: ");
first=in.readLine();
outFile.close();
}OK. Here is how I did it.
I have AddressDr which is Address driver.
I have two files Address and Entry which in package addressBook.
AddressDr:
import java.io.*;
import addressBook.*;
public class AddressDr
public static void main(String[] args)throws IOException
Name name;
Address address;
Phone phone;
Entry entry;
String first, last, middle, street, city, state, zip;
int areaCode, number;
BufferedReader in;
in=new BufferedReader(new InputStreamReader(System.in));
PrintWriter outFile;
outFile=new PrintWriter(new FileWriter("Entries"));
System.out.println("Quit entered fot the first name ends the " + "application.");
System.out.print("Enter first name: ");
first=in.readLine();
while (first.compareTo("Quit") !=0)
System.out.print("Enter last name: ");
last=in.readLine();
System.out.print("Enter middle name: ");
middle=in.readLine();
name=new Name(first, last, middle);
System.out.print("Enter street address: ");
street=in.readLine();
System.out.print("Enter city: ");
city=in.readLine();
System.out.print("Enter state: ");
state=in.readLine();
System.out.print("Enter ZIP code: ");
zip=in.readLine();
address=new Address(street, city, state, zip);
System.out.print("Enter areaCode: ");
areaCode = Integer.parseInt(in.readLine());
System.out.print("Enter number: ");
number=Integer.parseInt(in.readLine());
phone=new Phone(areaCode, number);
entry= new Entry(name, address, phone);
entry.writeToFile(outFile);
System.out.print("Enter first name: ");
first=in.readLine();
outFile.close();
Entry:
package addressBook;
import java.io.*;
public class Entry
Name name;
Address address;
Phone phone;
public Entry(Name newName, Address newAddress, Phone phoneNumber)
name = newName;
address = newAddress;
phone = phoneNumber;
public Name knowName()
return name;
public Address knowAddress()
return address;
public Phone knowPhone()
return phone;
public void writeToFile(PrintWriter outFile)
outFile.println(name.knowFirstName());
outFile.println(name.knowLastName());
outFile.println(name.knowMiddleName());
oufFile.println(address.knowStreet());
outFile.println(address.knowState());
outFile.println(address.knowCity());
outFile.println(address.knowZip());
outFile.println(phone.knowAreaCode());
outFile.println(phone.knowDigits());
Address:
package addressBook;
public class Address
String street;
String city;
String state;
String zipCode;
public Address(String newStreet, String newCity, String newState, String zip)
street=newStreet;
city=newCity;
state=newState;
zipCode=zip;
public String knowStreet()
return street;
public String knowCity()
return city;
public String knowState()
return state;
public String knowZip()
return zipCode;
} -
Recieving cannot resolve symbol symbol : class Serializable
I'm receiving the error:
cannot resolve symbol symbol : class Serializable
The class is as follows:
//package cscie160.hw5;
import java.io.Serializable
* @author Eddie Brodie
* @version %I%, %G%
public class AccountInfo implements Serializable
public int _accountNumber;
public int _pin;
public AccountInfo(int accountNumber, int pin)
_accountNumber = accountNumber;
_pin = pin;
I've tried importing java.*
I've also checked my classpath.
Any ideas?Try taking the import statement out of the comment block; that might help
-
Cannot resolve symbol: class OracleDriver
Attempting to compile a servlet on Apache Server using same jdeveloper jdbc libraries:
classes12.jar & nls_charset12.jar
Error message:
$compilejava2.sh ProdJobs
ProdJobs.java:361: cannot resolve symbol
symbol : class OracleDriver
location: package driver
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Am I missing something else?
JeffreyEnter this code into your program and then put the Oracle jar file that contains the driver in your run-time classpath.
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
catch(ClassNotFoundException cnfe) {
// driver not found
}The effect of this is that the classloader will load the Oracle driver for you then call it's static initiailizer that does a bunch of magic that results in the Java runtime knowing that there's a JDBC driver out there.
It is a little weird - but that's the way it works. -
Cannot resolve symbol: class EJBObject
Using javac I get this compile error on this file Calculator.java
Calculator.java:1: cannot resolve symbol
symbol : class EJBObject
location: package ejb
import javax.ejb.EJBObject;
^
Calculator.java:5: cannot resolve symbol
symbol : class EJBObject
location: interface Calculator
public interface Calculator extends EJBObject {
Source code for Calculator.java
import javax.ejb.EJBObject;
import java.rmi.*;
public interface Calculator extends EJBObject {
public long add (int x, int y) throws RemoteException;
public long subtract (int x, int y) throws RemoteException;This code is from a book, so I will assume its a classpath problem. My
classpath looks like:
"C\QTJava.zip".;%J2EE_HOME%\lib\j2ee.jar;%J2EE_HOME%\lib\locale
Also the following enviorment varibales have been set to:
J2EE_HOME
C:\Development\Java\j2sdkee1.3.1
JAVA_HOME
C:\Development\Java\jdk1.3.1
Path
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Common Files\Adaptec Shared\System;%JAVA_HOME%\bin;%J2EE_HOME%\bin
I can run j2EE, like "j2EE -verbose" (no problems)
also run cloudscape, like "cloudscape -start" (no problems)
also can run deploytool, like "deploytool" (no problems, & deploy sample ear files from cd book)
Your help is appreicated.
Maybe you are looking for
-
Well I received a free iPhone 4 but to use it with my iTunes I need to update iTunes to 11.0.4. Was just wondering if I would have any problems using my 3rd gen iPod touch with 4.3.1 on the newest iTunes. Thanks in advance.
-
Hello Team We use projection in calculation view . What is the actual utility of this projection in calculation view apart from holding the attribute view , analytic view and tables . We can add tables in union also directly and con
-
Rebuild Thumbnail at Every Load
Every time I open up iPhoto is insists on _rebuilding thumbnail caches_. This just started to happen with my 2008 iMac. Everything is up-to date. I do have 87gb worth of photos, but it has never affected it before. Thanks for any advice!
-
Running out of Gigs of disk space within seconds
I can't pin-point the exact reason, but recently, a certain operation has caused my 69 Gig root partition to suddenly jumps from less than 30% used to 100% used...twice. I believe it has to do with yaourt, but it could just as easily be flash or sli
-
Track ball mouse buttons and Logitech driver not fully working on Core Duo
I have a Ligitech cordless optical TrackMan ball bluetooth ball mouse which works for me. Unfortunately, I could not map the buttons properly (the back button kept doing an F9 function rather than 'back' in Safari). The driver in System Preferences p