Friday, December 14, 2012

Weblogic start up problems

weblogic.security.service.SecurityServiceRuntimeException: [Security:090399]Security Services Unavailable

Was the weblogic admin password changed in boot.properties?
If yes, then rename boot.properties (/Servers/AdminServer/security) to something else and try to start the server now. You can check for the logs under DOMAIN_DIR/Severs/AdminServer/log

If it doesn't work, try to rename ldap directory (DOMAIN_HOME/Severs/AdminServer/data/ldap) and then try to start the server.

Tuesday, October 25, 2011

Timestamp problem with SQL Developer

SQL developer doesn't display timestamp for any query result.

Simple Fix:
In Oracle SQLDeveloper Go to: Tools >> Preferences >> Database > NLS Parameters and update your Date Format field to DD-MON-RR HH:MI:SS value

Wednesday, August 10, 2011

toArray() class cast exception

List<Record> recordsList = new ArrayList<Record>(2);
...
Record[] records = (Record[]) recordsList.toArray() ; //incorrect
Record[] records = (Record[]) recordsList.toArray(new Record[2]); //correct

Why Class cast exception ?
Recall that a Collection can contain objects of vastly different types. There's no 'general' rule that objects in a Collection must all be of the exact same type. So when toArray() is being calling, it allocates a typed array Object[] which has no sub-classes defined. Therefore casting it to any form such as (Record[]), will not work.

toArray() method can't see your cast so you have to tell it what kind of array to make.

Friday, May 20, 2011

create a folder structure outside of your application directory



private static final String UPLOAD_DIRECTORY = "uploads/img/"+now;

Date date = new Date() ;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd") ;
String now = dateFormat.format(date);

File uploadsFolder = new File(UPLOAD_DIRECTORY);
uploadsFolder.mkdirs();

File uploadedFile = new File(uploadsFolder, "fileName");

Replace Back slash with forward slash


String location = "uploads\img";
String backslash= System.getProperty(
location.replace(backslash,

or

location.replace("\\", "/");"/");"file.separator") ;

gwtupload - File Upload with GWT

1. Download last version of the library: gwtupload-x.x.x.jar and include it in your classpath.

2. Add these libraries to your application: commons-fileupload-1.2.jar, commons-io-1.3.1.jar and log4j.jar

3. Edit your module file: Xxx.gwt.xml.
<module>

 
<!-- Include GWTUpload library -->
 
<inherits name="gwtupload.GWTUpload"/>
 
<!-- Load dinamically predefined styles in the library when the application starts -->
 
<stylesheet src="Upload.css"/>
 
 
<!-- Change this line with your project's entry-point -->
 
<entry-point class="package.Xxx"/>
</module>

4. Edit your web.xml and include your customized servlet (extending ActionUpload and overriding executeAction). Be aware that the servlet provided depends on these libraries: commons-fileupload, commons-io and log4j, so include them in your package.
<context-param>
   
<!-- max size of the upload request -->
   
<param-name>maxSize</param-name>
   
<param-value>3145728</param-value>
 
</context-param>
 
<context-param>
   
<!-- Useful in development mode to slow down the uploads in fast networks.
         Put the number of milliseconds to sleep in each block received in the server.
         false or 0, means don't use slow uploads  -->

   
<param-name>slowUploads</param-name>
   
<param-value>200</param-value>
 
</context-param>

 
<servlet>
   
<servlet-name>uploadServlet</servlet-name>
   
<!-- This is the default servlet, it puts files in session -->
   
<servlet-class>xxxxx.server.servlet.UploadServlet</servlet-class>
 
</servlet>
 
<servlet-mapping>
   
<servlet-name>uploadServlet</servlet-name>
   
<url-pattern>/xxx/upload</url-pattern>
 
</servlet-mapping>

    5. Create your client application
    public class MultipleUploadSample implements EntryPoint {

     
    // A panel where the thumbnails of uploaded images will be shown
     
    private FlowPanel panelImages = new FlowPanel();

     
    public void onModuleLoad() {
       
    // Attach the image viewer to the document
       
    RootPanel.get("thumbnails").add(panelImages);
       
       
    // Create a new uploader panel and attach it to the document
       
    MultiUploader defaultUploader = new MultiUploader();
       
    RootPanel.get("default").add(defaultUploader);

       
    // Add a finish handler which will load the image once the upload finishes
        defaultUploader
    .addOnFinishUploadHandler(onFinishUploaderHandler);
     
    }

     
    // Load the image in the document and in the case of success attach it to the viewer
     
    private IUploader.OnFinishUploaderHandler onFinishUploaderHandler = new IUploader.OnFinishUploaderHandler() {
       
    public void onFinish(IUploader uploader) {
         
    if (uploader.getStatus() == Status.SUCCESS) {

           
    new PreloadedImage(uploader.fileUrl(), showImage);
           
           
    // The server sends useful information to the client by default
           
    UploadedInfo info = uploader.getServerInfo();
           
    System.out.println("File name " + info.name);
           
    System.out.println("File content-type " + info.ctype);
           
    System.out.println("File size " + info.size);

           
    // You can send any customized message and parse it
           
    System.out.println("Server message " + info.message);
         
    }
       
    }
     
    };

     
    // Attach an image to the pictures viewer
     
    private OnLoadPreloadedImageHandler showImage = new OnLoadPreloadedImageHandler() {
       
    public void onLoad(PreloadedImage image) {
          image
    .setWidth("75px");
          panelImages
    .add(image);
       
    }
     
    };
    }

    6. create your customized servlet
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Hashtable;
    import java.util.List;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.io.FilenameUtils;
    import org.apache.log4j.Logger;

    import gwtupload.server.UploadAction;
    import gwtupload.server.exceptions.UploadActionException;


    public class UploadServlet extends UploadAction {

     private static final long serialVersionUID = 1L;
     private static Logger log = Logger.getLogger(UploadServlet.class);

     Hashtable<String, String> receivedContentTypes = new Hashtable<String, String>();

     /**
      * Maintain a list with received files and their content types.
      */
     Hashtable<String, File> receivedFiles = new Hashtable<String, File>();

     /**
      * Override executeAction to save the received files in a custom place
      * and delete this items from session. 
      * @return
      */

     @Override
     public String executeAction(HttpServletRequest request, List<FileItem> sessionFiles) throws UploadActionException {
      String response = "";
         int cont = 0;
         System.out.println("In ExecuteAction - UploadServlet Called");
         for (FileItem item : sessionFiles) {
          if (false == item.isFormField()) {
           cont ++;
              try {


               final String UPLOAD_DIRECTORY = "uploads/application/"+now;  
           
               Date date = new Date() ;
               SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd") ;
               String now = dateFormat.format(date);
             
               File uploadsFolder = new File(UPLOAD_DIRECTORY);
               uploadsFolder.mkdirs();
             
               String fileName = item.getName();
             
               // get only the file name not whole path
               if (fileName != null) {
                fileName = FilenameUtils. getName(fileName); // uploaded file filename
               }
             
               File uploadedFile = new File(uploadsFolder, fileName);
               item.write(uploadedFile);
             
               /// Save a list with the received files
               receivedFiles.put(item.getFieldName(), uploadedFile);
               receivedContentTypes.put(item.getFieldName(), item.getContentType());
             
               /// Send a customized message to the client.
               response += uploadedFile;
             
              } catch (Exception e) {
               throw new UploadActionException(e);
              }
          }
         }
        
         /// Remove files from session because we have a copy of them
         removeSessionFileItems(request);
        
         /// Send your customized message to the client.
         return response;
     }
      
     /**
      * Get the content of an uploaded file.
      */
     @Override
     public void getUploadedFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
      String fieldName = request.getParameter(PARAM_SHOW);
         File f = receivedFiles.get(fieldName);
         if (f != null) {
          response.setContentType(receivedContentTypes.get(fieldName));
          FileInputStream is = new FileInputStream(f);
          copyFromInputStreamToOutputStream(is, response.getOutputStream());
         } else {
          renderXmlResponse(request, response, ERROR_ITEM_NOT_FOUND);
         }
       }
      
     /**
      * Remove a file when the user sends a delete request.
      */
     @Override
     public void removeItem(HttpServletRequest request, String fieldName)  throws UploadActionException {
      File file = receivedFiles.get(fieldName);
         receivedFiles.remove(fieldName);
         receivedContentTypes.remove(fieldName);
         if (file != null) {
          file.delete();
         }
     }

    }

    Tuesday, May 10, 2011

    Class cast exception while casting the list object to the domain object

    Problem:
    TestDomainObj test = (TestDomainObj) session.createSQLQuery(query).list();  // class cast exception occurs

    Solution:
    (TestDomainObj) session.createSQLQuery(query)
    .addEntity(TestDomainObj.class)
    .list();

    CreateQuery returns an java.lang.Object array. We can't cast it to our mapped object.
    AddEntity fills the mapped object to the appropriate value, so that we can now use our mapped object other than object array