logo
down
shadow

How to load resources from classpath in itext7?


How to load resources from classpath in itext7?

By : user2185516
Date : November 22 2020, 04:01 AM
it fixes the issue Within Spring Boot Applications the classpath protocoll handler can be registered by using the TomcatURLStreamHandlerFactory. The baseURI can be set as stated in the question.
code :
org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.register();
ConverterProperties properties = new ConverterProperties().setBaseUri("classpath:/templates/");


Share : facebook icon twitter icon
URL to load resources from the classpath in Java

URL to load resources from the classpath in Java


By : vbd
Date : March 29 2020, 07:55 AM
wish of those help Intro and basic Implementation
First up, you're going to need at least a URLStreamHandler. This will actually open the connection to a given URL. Notice that this is simply called Handler; this allows you to specify java -Djava.protocol.handler.pkgs=org.my.protocols and it will automatically be picked up, using the "simple" package name as the supported protocol (in this case "classpath").
code :
new URL("classpath:org/my/package/resource.extension").openConnection();
package org.my.protocols.classpath;

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLStreamHandler;

/** A {@link URLStreamHandler} that handles resources on the classpath. */
public class Handler extends URLStreamHandler {
    /** The classloader to find resources from. */
    private final ClassLoader classLoader;

    public Handler() {
        this.classLoader = getClass().getClassLoader();
    }

    public Handler(ClassLoader classLoader) {
        this.classLoader = classLoader;
    }

    @Override
    protected URLConnection openConnection(URL u) throws IOException {
        final URL resourceUrl = classLoader.getResource(u.getPath());
        return resourceUrl.openConnection();
    }
}
new URL(null, "classpath:some/package/resource.extension", new org.my.protocols.classpath.Handler(ClassLoader.getSystemClassLoader()))
package my.org.url;

import java.net.URLStreamHandler;
import java.net.URLStreamHandlerFactory;
import java.util.HashMap;
import java.util.Map;

class ConfigurableStreamHandlerFactory implements URLStreamHandlerFactory {
    private final Map<String, URLStreamHandler> protocolHandlers;

    public ConfigurableStreamHandlerFactory(String protocol, URLStreamHandler urlHandler) {
        protocolHandlers = new HashMap<String, URLStreamHandler>();
        addHandler(protocol, urlHandler);
    }

    public void addHandler(String protocol, URLStreamHandler urlHandler) {
        protocolHandlers.put(protocol, urlHandler);
    }

    public URLStreamHandler createURLStreamHandler(String protocol) {
        return protocolHandlers.get(protocol);
    }
}
How to load media resources from the classpath in JMF

How to load media resources from the classpath in JMF


By : user3825544
Date : March 29 2020, 07:55 AM
I hope this helps you . New solution:
First, a custom DataSource class that returns a SourceStream that implements Seekable is needed:
code :
package com.ziesemer.test;

import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.net.JarURLConnection;
import java.net.URL;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

import javax.media.Duration;
import javax.media.MediaLocator;
import javax.media.Time;
import javax.media.protocol.ContentDescriptor;
import javax.media.protocol.PullDataSource;
import javax.media.protocol.PullSourceStream;
import javax.media.protocol.Seekable;

/**
 * @author Mark A. Ziesemer
 *  <a href="http://www.ziesemer.com.">&lt;www.ziesemer.com&gt;</a>
 */
public class JarDataSource extends PullDataSource{

    protected JarURLConnection conn;
    protected ContentDescriptor contentType;
    protected JarPullSourceStream[] sources;
    protected boolean connected;

    public JarDataSource(URL url) throws IOException{
        setLocator(new MediaLocator(url));
        connected = false;
    }

    @Override
    public PullSourceStream[] getStreams(){
        return sources;
    }

    @Override
    public void connect() throws IOException{
        conn = (JarURLConnection)getLocator().getURL().openConnection();
        conn.connect();
        connected = true;

        JarFile jf = conn.getJarFile();
        JarEntry je = jf.getJarEntry(conn.getEntryName());

        String mimeType = conn.getContentType();
        if(mimeType == null){
            mimeType = ContentDescriptor.CONTENT_UNKNOWN;
        }
        contentType = new ContentDescriptor(ContentDescriptor.mimeTypeToPackageName(mimeType));

        sources = new JarPullSourceStream[1];
        sources[0] = new JarPullSourceStream(jf, je, contentType);
    }

    @Override
    public String getContentType(){
        return contentType.getContentType();
    }

    @Override
    public void disconnect(){
        if(connected){
            try{
                sources[0].close();
            }catch(IOException e){
                e.printStackTrace();
            }
            connected = false;
        }
    }

    @Override
    public void start() throws IOException{
        // Nothing to do.
    }

    @Override
    public void stop() throws IOException{
        // Nothing to do.
    }

    @Override
    public Time getDuration(){
        return Duration.DURATION_UNKNOWN;
    }

    @Override
    public Object[] getControls(){
        return new Object[0];
    }

    @Override
    public Object getControl(String controlName){
        return null;
    }

    protected class JarPullSourceStream implements PullSourceStream, Seekable, Closeable{

        protected final JarFile jarFile;
        protected final JarEntry jarEntry;
        protected final ContentDescriptor type;

        protected InputStream stream;
        protected long position;

        public JarPullSourceStream(JarFile jarFile, JarEntry jarEntry, ContentDescriptor type) throws IOException{
            this.jarFile = jarFile;
            this.jarEntry = jarEntry;
            this.type = type;
            this.stream = jarFile.getInputStream(jarEntry);
        }

        @Override
        public ContentDescriptor getContentDescriptor(){
            return type;
        }

        @Override
        public long getContentLength(){
            return jarEntry.getSize();
        }

        @Override
        public boolean endOfStream(){
            return position < getContentLength();
        }

        @Override
        public Object[] getControls(){
            return new Object[0];
        }

        @Override
        public Object getControl(String controlType){
            return null;
        }

        @Override
        public boolean willReadBlock(){
            if(endOfStream()){
                return true;
            }
            try{
                return stream.available() == 0;
            }catch(IOException e){
                return true;
            }
        }

        @Override
        public int read(byte[] buffer, int offset, int length) throws IOException{
            int read = stream.read(buffer, offset, length);
            position += read;
            return read;
        }

        @Override
        public long seek(long where){
            try{
                if(where < position){
                    stream.close();
                    stream = jarFile.getInputStream(jarEntry);
                    position = 0;
                }
                long skip = where - position;
                while(skip > 0){
                    long skipped = stream.skip(skip);
                    skip -= skipped;
                    position += skipped;
                }
            }catch(IOException ioe){
                // Made a best effort.
                ioe.printStackTrace();
            }
            return position;
        }

        @Override
        public long tell(){
            return position;
        }

        @Override
        public boolean isRandomAccess(){
            return true;
        }

        @Override
        public void close() throws IOException{
            try{
                stream.close();
            }finally{
                jarFile.close();
            }
        }

    }

}
package com.ziesemer.test;

import java.net.URL;

import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.Manager;
import javax.media.Player;
import javax.media.Time;

/**
 * @author Mark A. Ziesemer
 *  <a href="http://www.ziesemer.com.">&lt;www.ziesemer.com&gt;</a>
 */
public class JmfTest{
    public static void main(String[] args) throws Exception{
        URL url = JmfTest.class.getResource("Test.wav");
        JarDataSource jds = new JarDataSource(url);
        jds.connect();
        final Player player = Manager.createPlayer(jds);

        player.addControllerListener(new ControllerListener(){
            @Override
            public void controllerUpdate(ControllerEvent ce){
                if(ce instanceof EndOfMediaEvent){
                    player.setMediaTime(new Time(0));
                    player.start();
                }
            }
        });
        player.start();
    }
}
package com.ziesemer.test;

import java.net.URL;

import javax.media.Manager;
import javax.media.Player;
import javax.media.bean.playerbean.MediaPlayer;

/**
 * @author Mark A. Ziesemer
 *  <a href="http://www.ziesemer.com.">&lt;www.ziesemer.com&gt;</a>
 */
public class JmfTest{
    public static void main(String[] args) throws Exception{
        URL url = JmfTest.class.getResource("Test.wav");
        JarDataSource jds = new JarDataSource(url);
        jds.connect();
        final Player player = Manager.createPlayer(jds);

        MediaPlayer mp = new MediaPlayer();
        mp.setPlayer(player);
        mp.setPlaybackLoop(true);
        mp.start();
    }
}
How to load resources outside of classpath?

How to load resources outside of classpath?


By : Prashant Sharma
Date : March 29 2020, 07:55 AM
may help you . You can use a FileSystemResource. You don't need to return a byte[]. Spring has a converter for producing the byte[] itself.
code :
@RequestMapping(value = "/loadPhoto", method = RequestMethod.GET, produces = MediaType.IMAGE_PNG_VALUE)
public ResponseEntity<FileSystemResource> loadPhoto() throws IOException {
    FileSystemResource res = new FileSystemResource("/ext/media/photos/photo.png");
    return new ResponseEntity<FileSystemResource>(res, HttpStatus.CREATED);
}
Cannot load resources in Annotation Processor (Not on classpath)

Cannot load resources in Annotation Processor (Not on classpath)


By : loust333
Date : March 29 2020, 07:55 AM
Hope that helps The issue is the ClassLoader that is bound to the current thread (Thread.currentThread().getContextClassLoader()) is not a URLClassLoader when Processor#process is called. It appears to be a restricted class loader that does not allowing loading resources. This happens with javac, eclipse compiler, maven compiler, etc.
Luckily your processor class will have an appropriate ClassLoader bound to it (ie getClass().getClassLoader()).
How to load one of same named resources from different jars in a classpath?

How to load one of same named resources from different jars in a classpath?


By : P.S.
Date : March 29 2020, 07:55 AM
To fix the issue you can do Let's say there is a jar main.jar which depends on two other jars - dep1.jar and dep2.jar. Both dependencies are in a classpath in MANIFEST.MF of main.jar. Each of dependency jars has a directory foo inside with a file bar.txt within: , Which one you get is undefined. However, you can use
Related Posts Related Posts :
  • Systemverilog interfaces over hierarchical boundaries
  • AIOHTTP:TypeError: index() takes 0 positional arguments but 1 was given
  • ProxySql Master node not serve the traffic untill slave gets shunned
  • Visual Studio 2019 Preview Remote Debugger
  • Setting composer (airflow) bucket using gcloud CLI
  • Cannot refresh subform from other subform
  • Email alert when field meets certain condition
  • MemSql > workaround for SELECT ... FOR UPDATE
  • Declarative Pipeline - Use of when condition, how to do nested conditions anyOf/allOf/not
  • Stateful microservices default 443 port share issue on the azure service fabric cluster
  • TYPO3 imagemagick makes images oversaturated
  • Typo-tolerant text searching?
  • How do I extract the components of a tuple in DAML?
  • Gimp 2.8.22: Change Color & Keep Transparency
  • I tried with this code, but it won't work with Ionic 3
  • Karate-Cucumber Report - No report file was added
  • Autofac - how to register a type used as a constructor parameter that requires the resolving (constructor) type as a gen
  • Tkinter filedialog is stealing focus and not returning it without "Alt-tab" in Python 3.4.1
  • jmeter dashboard report includes transaction controller children
  • Visual Branching in SourceTree
  • Doctrine2 orderBy in Symfony4 UnitTest
  • Match table-record to main-report dataset in Jaspersoft Studio
  • Drupal 8 custom module getting page not found
  • Is it possible that a container instance isn't really a container?
  • Padding not being understood in the UpSampling2D layer of a sequential layer
  • What is the incentive for a participating node in a "Proof of Stake" consensus model of Blockchain?
  • Radial gradient on a node in cytoscape
  • How to create operators from list in Airflow?
  • Is bitly supported for Native Script?
  • Reading log data records from a BLE device
  • How to add aliases in yii2?
  • XPages - Bootstrap popover
  • Misleading exception message in GatewayMethodInboundMessageMapper with un-annotated parameters
  • Inno Setup Disable Next button using multiple validation expressions (when input value matches one of multiple values)
  • 'reference to setCapability is ambiguous' on Appium Java project for Android Caps
  • Quartz .net - Abort/Stop Current Execution of Job & Pause All the triggers
  • Calculate length of road in a Polygon
  • Can Signal have zero recipients in BPMN?
  • Perl6: .sort() doesn't use overridden cmp
  • Find a directory using wildcard in Inno Setup
  • Getting error trying to formrequest login page via scrapy shell
  • Botframework Dialog migration v3 to v4
  • How to inject a java value in XSLT Saxon template?
  • Pagination in Microsoft Graph APi to get users
  • Changing Access modifier using reflection in kotlin
  • Karate - actual value is not a string
  • Is there a way of knowing if data is being piped into a express response?
  • Previous tab components are visible on parsing the json datas - cn1
  • Caret location QtQuick TextField
  • How to run Fabric-Ca server/client on multiple hosts with tls enabled?
  • Porting software / firmware from one architecture to another confusion
  • Why does removing yaml front matter stop Jekyll from converting md file to html
  • Fancybox with Owl carousel (lazyLoad)
  • pouchdb doesn't sync all doc to couchdb
  • Karate API Testing - How do we extract values from Content-Type: text/html kind of response?
  • Show newest inserted values in chart with TimeSeriesCollection when zoomed
  • Different random variable for same HTTP request when load in distributed mode
  • Why doesn't my gremlin query give an output?
  • TestFlight public link doesn't accept new beta testers
  • Is there a simpler way to bind the entire match when using multiple matches?
  • shadow
    Privacy Policy - Terms - Contact Us © bighow.org